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文件操作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did27819