Home > Bookmarks, PhP, Tech > Reading a Remote File in PHP usin fopen()

Reading a Remote File in PHP usin fopen()

January 26th, 2009 Leave a comment Go to comments

You can only use fopen() and file_get_contents() when fopen wrappers is enabled. This parameter is specified in the php.ini file and cannot be changed at run time using ini_set(), To know whether you can use these two function (fopen and file_get_contents) or not you can use the following code to check the value of fopen wrapper seting.

if (ini_get('allow_url_fopen') == '1') {
   // use fopen() or file_get_contents()
} else {
   // use CURL or fsockopen
}

Wen you use fopen() php function to read a remote file the code is as simple as reading from a local file:

if ($fp = fopen('http://www.google.com/', 'r')) {
   $content = '';
   while ($line = fread($fp, 1024)) {
      $content .= $line;
   }
   // do something with content here
   // ...
} else {
   // an error occured - do something here
}

Now, all code in one function:

function read_url_fopen($url) {
 if (ini_get('allow_url_fopen') != '1') {
      return '<p>ERROR - fopen wrappers is enabled</p>'; }
 if ($fp = fopen($url, 'r')) {
	   $content = '';
   while ($line = fread($fp, 1024)) {
      $content .= $line;
   }
  return $content;
   } else {
  return '<p> ERROR reading: '.$url.'</p>';
 }
}
  1. No comments yet.
  1. No trackbacks yet.
GoCache - ByREV-Cache v1.0 - live served in : 0.221068 sec (gzip)