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
随意转载^^但请附上教程地址。