RE: [PHP] file_exists
| From: | Stuart Dallas | Date: | Tue, 07 May 2002 06:59:10 +0000 |
| Subject: | RE: [PHP] file_exists | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-96359@lists.php.net to get a copy of this message | ||
On 6 May 2002 at 20:30, Craig Westerman wrote:
> File is on another server. Is there a way to check if file exists on
> another server?
I wrote the following function a while ago to do this. It works with http URLs and should also
work with https and ftp, but I have only tested http. I hope it's useful to you.
function RemoteFileExists($url, $referer)
{
$url_parts = parse_url($url);
if ($url_parts["scheme"] != "http" && $url_parts["scheme"]
!= "https" &&
$url_parts["scheme"] != "ftp")
{
// Don't currently handle shemes other than HTTP and HTTPS, so assume the file
exists for now
return TRUE;
}
$ch = curl_init();
$urltoget =
$url_parts["scheme"]."://".$url_parts["host"].$url_parts["path"];
if (isset($url_parts["query"])) $urltoget .=
"?".$urltoget["query"];
curl_setopt ($ch, CURLOPT_URL, $urltoget);
if ($url_parts["scheme"] == "http" || $url_parts["scheme"] ==
"https")
{
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$reply = curl_exec($ch);
curl_close($ch);
if ($url_parts["scheme"] == "http" || $url_parts["scheme"] ==
"https")
{
$result = explode(" ", $reply);
$reply = ($result[1] == "200");
}
return $reply;
}
--
Stuart