好得很程序员自学网

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

PHP判断远程文件是否存在 - php文件操作

PHP判断远程文件是否存在

我们要处理的是判断一个远程服务器文件是否是存在,而不是自己本同服务器目录了,如果判断远程服务器的文件上否存在我们需要使用到curl_init,fsockopen,fopen方法,下面我来给大家举例说明.

fopen函数

fopen() 函数打开文件或者 URL,如果打开失败,本函数返回 FALSE.

语法:fopen(filename) filename 规定要打开的文件或 URL.

从这个函数的说明来看是支持url的,代码如下:

<?php        $url  =  'http://www.phpfensi.com/images/test.jpg' ;            if ( @ fopen (  $url ,  'r'  ) )       {            echo   'File Exits' ;       }        else       {            echo   'File Do Not Exits' ;       }    ?> 

这样的写个人很不推荐,因为它这们很是浪费服务器性能资源的.

curl函数

PHP实例代码如下:

<?php        $url2  =  'http://www.phpfensi.com/test.jpg' ;        $ch  = curl_init();        $timeout  = 10;       curl_setopt ( $ch , CURLOPT_URL,  $url2 );       curl_setopt( $ch , CURLOPT_HEADER, 1);       curl_setopt ( $ch , CURLOPT_RETURNTRANSFER, 1);       curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT,  $timeout );            $contents  = curl_exec( $ch );        //echo $contents;         if  (preg_match( "/404/" ,  $contents )){            echo   '文件不存在' ;       }   ?> 

小提示,不过此函数需我服务器开启才可用.

推荐使用此方法,还有一种利用fsockopen 这种是专业的远程采集版了,代码如下:

$url  =  "http://www.phpfensi.com/.gif" ;          $info  =  parse_url ( $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 ();       while (! feof ( $fp )) {       $line  =  fgets ( $fp );       if ( $line  !=  "rn" ) {       $headers [] =  $line ;      } else  {       break ;      }      }          echo   "<pre>" ;      print_r( $headers ); 

小提示,不过此函数需我服务器开启才可用.

查看更多关于PHP判断远程文件是否存在 - php文件操作的详细内容...

  阅读:65次