位置 : 首页 > 经验分享 > PHP教程 > php如何判断文件是否存在,包括本地和远程文件

php如何判断文件是否存在,包括本地和远程文件

时间:2013-03-26   收藏
当检查的文件是本地时用php自带的file_exists检查就行了,检查远程的文件用fopen函数判断就行了,if(preg_match('/HTTP\/1.1 200/',fgets($fp,1024))) return true;

当检查的文件是本地时用php自带的file_exists检查就行了,而此函数只能检查本地的函数是否存在,
所以如果要检查远程的文件是否存在只能用其它的方法了。
如果所服务器中php的配置开启了“allow_url_fopen = On”,即允许远端访问,那么也很简单,其实这个是php.ini中默认开启的,
用fopen函数判断就行了,能打开说明存在
如果allow_url_fopen = Off那么可以用socket通讯来解决
下面写的一个通用函数my_file_exists来检查文件是否存在

function my_file_exists($file)  
{  
    if(preg_match('/^http:///',$file)){  
        //远程文件  
        if(ini_get('allow_url_fopen')){  
            if(@fopen($file,'r')) return true;  
        }  
        else{  
            $parseurl=parse_url($file);  
            $host=$parseurl['host'];  
            $path=$parseurl['path'];  
            $fp=fsockopen($host,80, $errno, $errstr, 10);  
            if(!$fp)return false;  
            fputs($fp,"GET {$path} HTTP/1.1 rnhost:{$host}rnrn");  
            if(preg_match('/HTTP/1.1 200/',fgets($fp,1024))) return true;  
        }  
        return false;  
    }  
    return file_exists($file);  
}

现在就可以调用此函数来检查文件的存在性,而不用去考虑是远程还是本地文件,或者是否禁用了allow_url_open

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


    浏览排行榜
    最新文字信息
返回顶部 关注新浪微博 关注腾讯微博