file_exists()适用于字符串但不适用于字符串变量

时间:2016-08-30 05:59:39

标签: php file-exists

PHP中的函数file_exists()存在问题。下面的代码结果总是“存在于字符串上”,但在我看来它应该打印两条消息。

$file = 'test_file.txt';
  if (file_exists($file)){
       echo 'Exists on variable';
  }
  if (file_exists('test_file.txt'){
       echo 'Exists on string';
  }

1 个答案:

答案 0 :(得分:-1)

is_file 建议用于验证文件,并为您的路线带来不便,更改

$file = $_SERVER['DOCUMENT_ROOT'].'/mysite/test_file.txt';

is_filefile_exists是两个本机PHP函数,可用于验证特定文件是否存在。虽然他们的名字是相当具有描述性的,但您应该知道:

  1. is_file 仅当最后一个函数的路径实际上是现有文件时才返回true。
  2. file_exists 返回true,无论过去是否为文件路径作为有效目录(如果要专门检查路径是否为目录,请使用is_dir但不是文件)。
  3.   

    这种差异非常重要。如果您的目标不仅仅是文件和目录,那么is_file就是您的功能。如果要无差别地检查目录或文件,请选择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