file_exists() 适用于字符串但不适用于字符串变量
file_exists() works on string but not string variable
我在 PHP 中遇到函数 file_exists() 的问题。下面代码的结果总是 "Exists on string",但在我看来它应该打印两条消息。
$file = 'test_file.txt';
if (file_exists($file)){
echo 'Exists on variable';
}
if (file_exists('test_file.txt'){
echo 'Exists on string';
}
is_file推荐用于校验文件,不便之处可自行修改
$file = $_SERVER['DOCUMENT_ROOT'].'/mysite/test_file.txt';
is_file and file_exists 是两个本机 PHP 函数,可用于验证特定文件是否存在。虽然他们的名字相当具有描述性,但您应该知道:
- is_file returns 仅当最后一个函数的路径实际上是一个现有文件时才为真。
- file_exists returns true 过去是否是文件路径作为有效目录(使用is_dir if你想专门检查路径是否是目录而不是文件)。
This difference is very important. If your goal is not only files and directories is_file is your function. If you want to check a directory or a file indifferently choose file_exists
示例:
$file ='mysite/public_html/folder/file.php';
$directory ='/mysite/public_html/folder/';
$exists = is_file( $file );//return true
$exists = is_file( $directory ); //return false
$exists = file_exists( $file );//return true
$exists = file_exists( $directory ); //return true
我在 PHP 中遇到函数 file_exists() 的问题。下面代码的结果总是 "Exists on string",但在我看来它应该打印两条消息。
$file = 'test_file.txt';
if (file_exists($file)){
echo 'Exists on variable';
}
if (file_exists('test_file.txt'){
echo 'Exists on string';
}
is_file推荐用于校验文件,不便之处可自行修改
$file = $_SERVER['DOCUMENT_ROOT'].'/mysite/test_file.txt';
is_file and file_exists 是两个本机 PHP 函数,可用于验证特定文件是否存在。虽然他们的名字相当具有描述性,但您应该知道:
- is_file returns 仅当最后一个函数的路径实际上是一个现有文件时才为真。
- file_exists returns true 过去是否是文件路径作为有效目录(使用is_dir if你想专门检查路径是否是目录而不是文件)。
This difference is very important. If your goal is not only files and directories is_file is your function. If you want to check a directory or a file indifferently choose file_exists
示例:
$file ='mysite/public_html/folder/file.php';
$directory ='/mysite/public_html/folder/';
$exists = is_file( $file );//return true
$exists = is_file( $directory ); //return false
$exists = file_exists( $file );//return true
$exists = file_exists( $directory ); //return true