爱好者 > Typecho > 代码相关 > php判断文件是否存在

php判断文件是否存在

作者:佚名 来源:爱好者 时间:2016-04-16

最近博客需要这么个功能,最初是想用file_exists()来判断本地文件的,奈何地址那里我填的是“http://qqdie.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://qqdie.com/test.jpg';
 
    if( @fopen( $url, 'r' ) )
    {
        echo '存在';
    }
    else
    {
        echo '不存在';
    }
    ?>
CURL 方法:

<?php
    $url2 = 'http://www.qqdie.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 '文件不存在';
    }
    ?>