本文介紹使用php判斷文件是否存在的方法,支持本地及遠程文件判斷,提供完整調用代碼及演示。
1.判斷本地文件是否存在
判斷本地文件是否存在,可以使用file_exists方法判斷。
<?php
$file = 'test.jpg';
var_dump(file_exists($file));
?>
2.判斷遠程文件是否存在
判斷遠程文件是否存在,不能使用file_exists方法,而是獲取遠程文件的header來判斷是否存在,如存在返回的HTTP_CODE是200或304。
<?php
// 屏蔽域名不存在等訪問問題的警告
error_reporting(E_ALL ^ (E_WARNING|E_NOTICE));
$remote_file = 'http://www.csdn.net/css/logo.png';
$header = get_headers($remote_file, true);
var_dump(isset($header[0]) && (strpos($header[0], '200') || strpos($header[0], '304')));
?>
3.完整代碼
<?php
/**
* 判斷文件是否存在,支持本地及遠程文件
* @param String $file 文件路徑
* @return Boolean
*/
function check_file_exists($file){
// 遠程文件
if(strtolower(substr($file, 0, 4))=='http'){
$header = get_headers($file, true);
return isset($header[0]) && (strpos($header[0], '200') || strpos($header[0], '304'));
// 本地文件
}else{
return file_exists($file);
}
}
// 屏蔽域名不存在等訪問問題的警告
error_reporting(E_ALL ^ (E_WARNING|E_NOTICE));
$file1 = 'test.jpg';
$file2 = 'http://www.csdn.net/css/logo.png';
var_dump(check_file_exists($file1)); // false
var_dump(check_file_exists($file2)); // true
?>