PHP判断远程/网络文件是否存在实例总结
如果我们要判断远程文件是否存可以使用很多方法,在php中有ile_get_contents,curl, fsockopen,fopen这些函数都可以获取远程文件.
方法一,代码如下:
<?php $url = 'http://www.phprm,com'; $fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false; echo $fileExists; //返回1,就说明文件存在。 ?>
方法二,代码如下:
<?php //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; } ?>
方法三,代码如下:
<?php 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;
方法三应该是最合适的,代码如下:
<?php $url = "http://www.phprm.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.phprm.com'; if (@fopen($url, 'r')) { echo 'File Exits'; } else { echo 'File Do Not Exits'; } ?>
文章网址:http://www.phprm.com/wenjian/fs3781.html
随意转载^^但请附上教程地址。