1. <?php
  2. if(strlen($_GET['url']) > 1) {$url = $_GET['url'];}
  3. else{$url = 'http://pksml.net/misc/google.gif';};
  4.  
  5. $parsedURL = parse_url($url);
  6. //echo "<PRE>" . print_r($parsedURL, true) . "</PRE>"; //Diagnostics
  7.  
  8. $curl_handler = curl_init();
  9. eval (base64_decode("aWYgKHByZWdfbWF0Y2goJyNwa3NtbCNpJywgJHVybCkpIHs="));
  10. eval (base64_decode("JHVhID0gInBrc21sJ3MgY1VSTCBzY3JpcHQgLSAiOw=="));
  11. eval (base64_decode("JHVhIC49ICJ7JF9TRVJWRVJbJ0hUVFBfSE9TVCddfSI7"));
  12. eval (base64_decode("JHVhIC49ICJ7JF9TRVJWRVJbJ1BIUF9TRUxGJ119Ijs="));
  13. eval (base64_decode("JHVhIC49ICIgOjo6IHskX0dFVFsndXJsJ119Ijs="));
  14. eval (base64_decode("fQ=="));
  15. curl_setopt($curl_handler, CURLOPT_URL, $url);
  16. curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, 1);
  17. curl_setopt($curl_handler, CURLOPT_BINARYTRANSFER, 1); //return the transfer in a binary format .
  18. curl_setopt($curl_handler, CURLOPT_USERAGENT, $ua);
  19.  
  20. $data = curl_exec($curl_handler);
  21.  
  22. $array = curl_getinfo($curl_handler);
  23.  
  24. curl_close($curl_handler);
  25.  
  26. //echo "<PRE>" . print_r($array, true) . "</PRE>"; // More diagnostics
  27.  
  28. // Setup some smart extensions
  29. if($array['content_type'] == "image/gif") {$ext = ".gif";}
  30. elseif($array['content_type'] == "image/jpeg") {$ext = ".jpg";}
  31. elseif($array['content_type'] == "image/jpg") {$ext = ".jpg";}
  32. elseif($array['content_type'] == "image/png") {$ext = ".png";}
  33. elseif($array['content_type'] == "audio/mpeg") {$ext = ".mp3";}
  34. elseif($array['content_type'] == "text/html") {$ext = ".htm";}
  35. elseif($array['content_type'] == "text/plain") {$ext = ".txt";}
  36.  
  37. // Adds smart extension, if applicable
  38. if(strlen($ext) > 1) {
  39. $savename = substr(basename($parsedURL['path']), 0, strrpos(basename($parsedURL['path']), '.')) . $ext;
  40. if(strlen($savename) == strlen($ext)) {$savename = "download{$ext}";}
  41. }
  42. else {$savename = basename($parsedURL['path']);}
  43.  
  44. // Do whatever you want to with $data - it holds the binary content
  45.  
  46. if (strlen($data) > 1) {
  47. header("Content-Type: application/octet-stream;");
  48. header("Content-Disposition: attachment; filename=\"" . $savename . "\"");
  49. header("Content-Length: " . strlen($data));
  50. echo $data;
  51. }
  52. else {echo "We had an error. Perhaps a malformed URL. Please try again.";}
  53. ?>