php file_exists()在IIS上的某个目录上返回false

时间:2009-12-02 10:56:48

标签: php

环境:

  1. PHP5
  2. WINDOWS2003
  3. 带有fastCGI的IIS
  4. 代码:

    <?php
    $p = "i:\\tmp";
    if( file_exists($p) )
    {
        print $p . ' exists!';
    }
    else
    {
        print $p . ' not exists!';
    }
    ?>
    

4 个答案:

答案 0 :(得分:2)

我明白了:

使用时

file_exist() 

测试现有目录,如果父目录没有IUSR_MACHINE的读取权限,则测试总是失败。

答案 1 :(得分:1)

通过检查目录的权限(chmod)确保目录可读。

或者,您可以尝试使用

is_readable()

功能

答案 2 :(得分:1)

您的代码是什么样的?如果您正在使用字符串文字进行测试,请不要忘记反斜杠引入了转义序列:

file_exists("D:\rip\this\nipple")

此处\r是回车符,\t是一个标签页,\n是换行符。

答案 3 :(得分:0)

如果您在安全模式下运行PHP,那么由于安全模式限制,File_Exists将始终返回FALSE以查找无法访问的文件。

另请注意,File_Exists会缓存它的结果,因此您可能不想使用ClearStatCache函数清除缓存