网站地图    收藏   

主页 > php专栏 > php文件操作 >

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

来源:自学PHP网    时间:2014-11-28 00:07 作者: 阅读:

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

PHP判断远程文件是否存在

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

fopen函数

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

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

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

  1. <?php  
  2.     $url = 'http://www.phpfensi.com/images/test.jpg';  
  3.    
  4.     if( @fopen$url'r' ) )  
  5.     {  
  6.         echo 'File Exits';  
  7.     }  
  8.     else 
  9.     {  
  10.         echo 'File Do Not Exits';  
  11.     }  
  12.  ?> 

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

curl函数

PHP实例代码如下:

  1. <?php  
  2.     $url2 = 'http://www.phpfensi.com/test.jpg';  
  3.     $ch = curl_init();  
  4.     $timeout = 10;  
  5.     curl_setopt ($ch, CURLOPT_URL, $url2);  
  6.     curl_setopt($ch, CURLOPT_HEADER, 1);  
  7.     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
  8.     curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
  9.    
  10.     $contents = curl_exec($ch);  
  11.     //echo $contents;  
  12.     if (preg_match("/404/"$contents)){  
  13.         echo '文件不存在';  
  14.     }  
  15. ?> 

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

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

  1. $url = "http://www.phpfensi.com/.gif";  
  2.   
  3.    $info = parse_url($url);  
  4.    $fp = fsockopen($info['host'], 80,$errno$errstr, 30);  
  5.    fputs($fp,"GET {$info['path']} HTTP/1.1rn");  
  6.    fputs($fp"Host: {$info['host']}rn");  
  7.    fputs($fp"Connection: closernrn");  
  8.    $headers = array();  
  9.    while(!feof($fp)) {  
  10.    $line = fgets($fp);  
  11.    if($line != "rn") {  
  12.    $headers[] = $line;  
  13.    }else {  
  14.    break;  
  15.    }  
  16.    }  
  17.   
  18.    echo "<pre>";  
  19.    print_r($headers); 

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论