无法使用file_exists查找文件

时间:2016-05-02 20:43:34

标签: php

我正在尝试在名为test.txt的文件夹中查找名为.test的文件。

<?php 
 $path = '/localhost/joshcms/.test/test.txt';
 $fileexists = file_exists($path);
 if ($fileexists == '1') {
  $result = 'true';
 } else {
   $result = 'false';
 }
?>

请原谅可怕的格式化,我在Jade中创建这个PHP。

首先,我将$path变量设置为.test/test.txt所以当它搜索文件时,它会查看:localhost/joshcms/.test/test.txt,因为它是一个相对路径;因为那从来没有奏效,所以我改变了代码,看看它在上面的方式,然而,它仍然不起作用。然后我尝试使用位于同一文件夹中的文件并且工作正常。

我不太确定是否由于我试图在隐藏文件夹中找到某些内容而发生此错误,或者只是该函数不起作用,除非该文件与PHP脚本/文件本身位于同一目录中

2 个答案:

答案 0 :(得分:2)

file_exists()会返回bool(true|false),因此检查针对字符串'1'的响应(例如if ($fileexists == '1'))将不会通过。

以下内容可行:

$path = '/localhost/joshcms/.test/test.txt';
if ( file_exists($path) ) { // returns bool(true|false) response
    $result = 'true'; // if file exists, this condition will satisfy as the file does exist bool(true)
} else {
   $result = 'false'; // if the file at $path does not exist, this will satisfy; bool(false)
}

除此之外:根据您的代码,$result现在将保持字符串值为true / false。如果您希望$result保持布尔值为true / false,请删除单引号,即。分别为$result = true;$result = false;

答案 1 :(得分:0)

您的问题与路径有关。它与目录名称中的点无关。无论如何,这有其自身的其他影响,不适用于当前的背景。您始终可以使用__DIR_ _ Constant或dirname(__FILE_ _)函数,然后向上或向下工作到文件的位置。

<?php
        $file1     = __DIR__ . "/.test/test.txt";     //THIS SCRIPT LIVES IN THE SAME DIRECTORY AS THE ".test" FOLDER           
        $file2     = __DIR__ . "/../.test/test.txt";  //THIS SCRIPT LIVES 1 DIRECTORY BELOW THE ".test" FOLDER

        if( file_exist($file1) ){
            var_dump("THE FILE: {$file1} EXISTS.");
        }else{
            var_dump("CANNOT FIND THE FILE: {$file1} EXISTS.");
        }