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