Thursday, September 29, 2005

Download a Remote File Using PHP

by damonp on September 29, 2005

in PHP,Snippets

On hosts with safe_mode turned on, it can be difficult to get remote files with a system call to wget or curl. Here is a PHP function that will get a file with an HTTP GET. I use it to download remote images. It returns the binary data in a variable that can be written to a file.

<?php
function http_get_file($url)    {

   $url_stuff = parse_url($url);
   $port = isset($url_stuff['port']) ? $url_stuff['port']:80;

   $fp = fsockopen($url_stuff['host'], $port);

   $query  = 'GET ' . $url_stuff['path'] . " HTTP/1.0\n";
   $query .= 'Host: ' . $url_stuff['host'];
   $query .= "\n\n";

   fwrite($fp, $query);

   while ($line = fread($fp, 1024)) {
       $buffer .= $line;
   }

   preg_match('/Content-Length: ([0-9]+)/', $buffer, $parts);
   return substr($buffer, - $parts[1]);
}
?>

Original function found on php.net

Update: 3-Feb-11
Updated function to download a remote file with PHP and cURL.

Popularity: 48%

{ 9 comments }

Delete Files Newer Than

by damonp on September 29, 2005

in Snippets

Delete a files newer than filename in the local directory

find ./ -type f -newer filename -print|xargs rm

Delete a files older (ie. not newer) than filename in the local directory

find ./ -type f ! -newer filename -print|xargs rm

Popularity: 1%

{ 0 comments }