首页 > php文件操作 > PHP判断远程文件是否存在

PHP判断远程文件是否存在

我们要处理的是判断一个远程服务器文件是否是存在,而不是自己本同服务器目录了,如果判断远程服务器的文件上否存在我们需要使用到curl_init,fsockopen,fopen方法,下面我来给大家举例说明.

fopen函数

fopen() 函数打开文件或者 URL,如果打开失败,本函数返回 FALSE.

语法:fopen(filename) filename 规定要打开的文件或 URL.

从这个函数的说明来看是支持url的,代码如下:

<?php
$url = 'http://www.phprm.com/images/test.jpg';
if (@fopen($url, 'r')) {
    echo 'File Exits';
} else {
    echo 'File Do Not Exits';
}
?>

这样的写个人很不推荐,因为它这们很是浪费服务器性能资源的.

curl函数

PHP实例代码如下:

<?php
$url2 = 'http://www.phprm.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 这种是专业的远程采集版了,代码如下:

<?php
$url = "http://www.phprm.com/.gif";
$info = parse_url($url);
$fp = fsockopen($info['host'], 80, $errno, $errstr, 30);
fputs($fp, "GET {$info['path']} HTTP/1.1\r\n");
fputs($fp, "Host: {$info['host']}\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = array();
while (!feof($fp)) {
    $line = fgets($fp);
    if ($line != "\r\n") {
        $headers[] = $line;
    } else {
        break;
    }
}
echo "<pre>";
print_r($headers);
?>

小提示,不过此函数需我服务器开启才可用.


本文地址:http://www.phprm.com/wenjian/fs3996.html

转载随意,但请附上文章地址:-)

标签:是否存在 php判断远程文件

相关文章

发表留言