note 40781 added to function.file-exists
| From: | setec at freemail dot it | Date: | Sun, 14 Mar 2004 19:04:00 +0000 |
| Subject: | note 40781 added to function.file-exists | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-66829@lists.php.net to get a copy of this message | ||
Hi, I have solved the error regarding the 404 header line and I have introduced the suggested
improvement about return error codes. Hope this version ss better than previous one.
<?php
function remote_file_exists ($url)
{
/*
Return error codes:
1 = Invalid URL host
2 = Unable to connect to remote host
*/
$head = "";
$url_p = parse_url ($url);
if (isset ($url_p["host"]))
{ $host = $url_p["host"]; }
else
{ return 1; }
if (isset ($url_p["path"]))
{ $path = $url_p["path"]; }
else
{ $path = ""; }
$fp = fsockopen ($host, 80, $errno, $errstr, 20);
if (!$fp)
{ return 2; }
else
{
$parse = parse_url($url);
$host = $parse['host'];
fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
fputs($fp, "HOST: ".$host."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while (!feof ($fp))
{ $headers .= fgets ($fp, 128); }
}
fclose ($fp);
$arr_headers = explode("\n", $headers);
$return = false;
if (isset ($arr_headers[0]))
{ $return = strpos ($arr_headers[0], "404") === false; }
return $return;
}
// sample code
$url = "http://www.google.it/intl/it_it/images/logo.gif";
if (remote_file_exists ($url))
{ print ($url . " file exists!"); }
else
{ print ($url . " file doesn't exist!"); }
?>
----
Manual Page -- http://www.php.net/manual/en/function.file-exists.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+40781
Delete -- http://master.php.net/manage/user-notes.php?action=delete+40781&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+40781&report=yes
Search -- http://master.php.net/manage/user-notes.php