PHP判断远程/网络文件是否存在实例总结

在做一个图片预览中图的东西,遇到一个问题,就是要判断远程文件是否存在。代码如下:复制代码 代码如下://方法一function file_exists{$ch = curl_init();curl_setopt($ch, curlopt_url,$url);curl_setopt($ch, curlopt_nobody, 1); // 不下载curl_setopt($ch, curlopt_failonerror, 1);curl_setopt($ch, curlopt_returntransfer, 1);if!==false)return true;elsereturn false;}//方法二function file_exists2{if(file_get_contentsreturn 1;elsereturn 0;}//方法三function file_exists {$curl = curl_init;// 不取回数据curl_setopt($curl, CURLOPT_NOBODY, true);// 发送请求$result = curl_exec;$found = false;// 如果请求没有发送失败if {// 再检查http响应码是否为200}

方法一:

方法一无论图片在不在都是返回FALSE;方法二windows下可行,LINUX下无论图片在不在都返加TRUE;方法三应该是最合适的另外:用get_headers() 方法存在效率问题,建议不使用作为此解决方案

 代码如下

fsockopen版:

<?php
$url = “http://www.111cn.net”;
$fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false;
echo $fileExists; //返回1,就说明文件存在。
?>

复制代码 代码如下:$url = "http://www.baidu.com/img/baidu_sylogo1.gif";$info = parse_url;$fp = fsockopen($info['host'], 80,$errno, $errstr, 30);fputs($fp,"GET {$info['path']} HTTP/1.1rn");fputs($fp, "Host: {$info['host']}rn");fputs($fp, "Connection: closernrn");$headers = array {$line = fgets;if {$headers[] = $line;}else {break;}}echo "

方法二:

";print_r;通过http状态码来判断文件是否存在,比如,响应 302,301,404等都为不存在,如果是200,304,等可以视为文件存在。fopen()方法:复制代码 代码如下:CURL方法:复制代码 代码如下:

 代码如下

//php判断远程文件是否存在
function url_exists($url){
    $handle=curl_init($url);
    if(false===$handle){
  return false;
    }
    curl_setopt($handle,CURLOPT_HEADER,false);
    curl_setopt($handle,CURLOPT_FAILONERROR,true);
    curl_setopt($handle,CURLOPT_NOBODY,true);
    curl_setopt($handle,CURLOPT_RETURNTRANSFER,false);
    $connectable=curl_exec($handle);
 
    curl_close($handle);   
    return $connectable;
}

方法三

 代码如下

本文由金沙官网线上发布于编程,转载请注明出处:PHP判断远程/网络文件是否存在实例总结

您可能还会对下面的文章感兴趣: