跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

PHP判断远程文件是否存在

我们要处理的是判断一个远程服务器文件是否是存在,而不是自己本同服务器目录了,如果判断远程服务器的文件上否存在我们需要使用到 curl _init,fsockopen,fopen方法,下面我来给大家举例说明。 fopen函数 fopen() 函数打开文件或者 URL。 如果打开失败,本函数返回 FALSE。 语法 fopen(filename)filename 规定要打开的文件或 URL。 立即学习 “ PHP免费学习笔记(深入) ”; curl模块采集任意网页php类 curl模块采集任意网页php类 下载 从这个函数的说明来看是支持url的,代码如下 代码如下复制代码$url = 'http://www.xxx.com/images/test.jpg';if( @fopen( $url, 'r' ) ){echo 'File Exits';}else{echo 'File Do Not Exits';}?> 这样的写个人很不推荐哦,因为它这们很是浪费服务器性能资源的。 curl函数 例子 代码如下复制代码$url2 = 'http://www.111cn.net/ 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.111cn.net /.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 "
";
    print_r($headers);
小提示,不过此函数需我服务器开启才可用哦

相关文章