最近博客需要这么个功能,最初是想用file_exists()来判断本地文件的,奈何地址那里我填的是“http://zezeshe.com/usr/themes/Themia/img/sj/85.jpg”这货,因为我的错误填写,让我以为是主机的毛病,于是改用 fopen()方法,这个在我的韩国主机上没有问题,可我博客在的中国香港主机却死活不好使,问了客服说是@ 这个符号会消灭所有返回,建议我用CURL 方法,还没等我开始用,客服又说了:你不会是想判断本地文件吧? 我的回答当然是肯定的了。客服又说用file_exists()方法即可,然后我就把我错误的写法发了过去,质疑,然后客服就告诉了我问题所在。
最为一个{小 白|da bai},我要勇于记住这个错误,所以写这么一篇文章,也许也能帮助到同样小白的你。
对于本地服务器文件
<?php
$url = 'usr/themes/Themia/img/sj/85.jpg';
if( file_exists($url) )
{
echo '存在';
}
else
{
echo '不存在';
}
?>
对于远程文件的判断 fopen()方法:
<?php
$url = 'http://zezeshe.com/test.jpg';
if( @fopen( $url, 'r' ) )
{
echo '存在';
}
else
{
echo '不存在';
}
?>
CURL 方法:
<?php
$url2 = 'http://www.zezeshe.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 '文件不存在';
}
?>