PHP判断远程/网络文件是否存在实例总结
如果我们要判断远程文件是否存可以使用很多方法,在php中有ile_get_contents,curl, fsockopen,fopen这些函数都可以获取远程文件.
方法一,代码如下:
<?php $url = [http: //www.phpfensi.com]; $fileExists = @ file_get_contents ( $url , null, null, -1, 1) ? true:false; echo $fileExists ; //返回1,就说明文件存在。 ?>方法二,代码如下:
//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 ; }方法三,代码如下:
function file_exists ( $url ) { $curl = curl_init( $url ); // 不取回数据 curl_setopt( $curl , CURLOPT_NOBODY, true); // 发送请求 $result = curl_exec( $curl ); $found = false; // 如果请求没有发送失败 if ( $result !== false) { // 再检查http响应码是否为200 }方法一无论图片在不在都是返回FALSE;
方法二windows下可行,LINUX下无论图片在不在都返加TRUE;
方法三应该是最合适的,代码如下:
$url = "http://www.phpfensi.com" ; $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 $url = 'http://www.phpfensi.com' ; if ( @ fopen ( $url , 'r' ) ) { echo 'File Exits' ; } else { echo 'File Do Not Exits' ; } ?>查看更多关于PHP判断远程/网络文件是否存在实例总结 - php文件的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did27833