有没有办法检查文件(带有绝对或相对路径)是否存在?我正在使用PHP。我找到了几种方法,但要么他们只接受绝对或相对而不是两者。感谢。
答案 0 :(得分:25)
file_exists($file);
为相对路径和绝对路径提供了技巧。
然而,更有用的是拥有绝对路径而不对其进行硬编码。最好的方法是使用dirname(__FILE__)
,它以ether UNIX或Windows格式获取当前文件的目录的完整路径。然后我们可以使用realpath()
,如果文件不存在,它会方便地返回false。然后,您只需指定该文件目录的相对路径并将其全部放在一起:
$path = dirname(__FILE__) . '/include.php';
if (realpath($path)) {
include($path);
}
答案 1 :(得分:4)
file_exists($path)
将检查绝对路径或相对于脚本位置。如果要检查相对于文档根目录,可以尝试file_exists("{$_SERVER['DOCUMENT_ROOT']}path");
如果你想要一个同时采用相对路径和绝对路径的函数,这样的东西应该可以工作(未经测试):
function check_file($path) {
return ( file_exists($path) || file_exists("{$_SERVER['DOCUMENT_ROOT']}path") );
}
答案 2 :(得分:4)
您可以使用realpath
检查给定路径中是否存在文件并检索该文件的扩展路径:
$absPath = realpath($path);
if ($absPath === false) {
// invalid path
}