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

2025-03-30 13:26:42
推荐回答(1个)
回答1:

当检查的文件是本地时用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 \r\nhost:{$host}\r\n\r\n); 现在就可以调用此函数来检查文件的存在性,而不用去考虑是远程还是本地文件,或者是否禁用了allow_url_open