2016-08-30 102 views
0

我在函数file_exists()中遇到了问题。下面的代码的结果总是“存在字符串”,但在我看来它应该打印两条消息。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

尝试用绝对路径,而不是相对 –

+1

建议,如果要检查,如果它实际上是一个文件,它存在,请改用'is_file()'。如果路径是一个文件夹,'file_exists()'也会返回true,以及@ManinderpreetSingh所说的内容。 –

+0

@MagnusEriksson您需要同时使用is_file()来避免警告。编辑:哦显然不是! https://3v4l.org/L9ppf对不起! – jedifans

回答

0

is_file建议使用来验证文件和不便可以为你的路线,改变

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

is_filefile_exists是可以使用的两个PHP函数,以核实是否特定的文件是否存在。虽然他们的名字是相当的描述,你应该知道:

  1. is_file返回true只有在路径的最后一个函数实际上是一个已经存在的文件。
  2. file_exists返回true是否过去是文件路径作为有效目录(如果要专门检查路径是否是目录而不是文件,请使用is_dir)。

这个区别非常重要。如果你的目标不仅仅是文件和目录,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 
+0

这是对这些函数的一个很好的解释。然而,它并没有真正回答OP的问题,所以我不确定你为什么将它作为答案? –

+0

将检查函数is_file。也许它会在我的情况下更好:) – PJak

+0

is_file在我的问题做了工作。它应该这样工作,但没有理由他们没有。现在每一个方面都可以。 – PJak

相关问题