好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP判断远程图片或文件或url是否存在

在php中要远程图片存不存在我们可以直接相关函数就可以了,像有curl,fopen之类的函数都可以快速的检测出来, 下面整理了几个例子,希望对各位有帮助.

例子一 ,代码如下:

//判断远程文件    function  check_remote_file_exists( $url )   {   $curl  = curl_init( $url );   // 不取回数据    curl_setopt( $curl , CURLOPT_NOBODY, true);   // 发送请求    $result  = curl_exec( $curl );   $found  = false;   // 如果请求没有发送失败    if  ( $result  !== false) {   // 再检查http响应码是否为200    $statusCode  = curl_getinfo( $curl , CURLINFO_HTTP_CODE);   if  ( $statusCode  == 200) {   $found  = true;   }   }   curl_close( $curl );    return   $found ;   } 

当然也有很多其它方法,或多或少有些限制和缺陷,如:

(1),使用fopen()函数,它要在allow_url_open开启的状态下,否则会报错,代码如下:

$url  =  'http://www.phpfensi.com /img/qrcode_for_phpddt.JPG' ;  if (@ fopen ( $url ,  'r' )) {       echo   '文件存在' ;  }  else  {       echo   '文件不存在' ;  }  

(2),get_headers取得服务器响应一个 HTTP 请求所发送的所有标头,效率较低,你可以测试下,代码如下:

$url  =  'http://www.phpfensi.com /img/qrcode_for_phpddt.JPG' ;    stream_context_set_default(       array (           'http'  =>  array (                'timeout'  => 1,              )      )  );      $headers  = get_headers( $url );    if (preg_match( '/200/' , $headers [0])) {       echo   '文件存在' ;  }  else  {       echo   '文件不存在' ;  } 

(3),file_get_contents()函数,代码如下:

  $opts  =  array (       'http' => array (       'timeout' =>3,      )  );  $context  = stream_context_create( $opts );  $resource  = @ file_get_contents ( 'http://www.phpfensi.com /img/qrcode_for_phpddt.JPG' , false,  $context );    if ( $resource ) {       echo   '文件存在' ;  }  else  {       echo   '文件不存在' ;  }

 

 

查看更多关于PHP判断远程图片或文件或url是否存在的详细内容...

  阅读:62次