代码之家  ›  专栏  ›  技术社区  ›  Ian Wood

php fopen返回false,但文件可读/写

php
  •  4
  • Ian Wood  · 技术社区  · 14 年前

    if(is_readable($file)) echo 'readable ';
    if(is_writable($file)) echo 'writable ';
    $fp = fopen($file, 'a+');
    var_dump($fp);
    

    结果是

    readable writable bool(false)
    

    有什么想法吗?

    当然,这肯定是一个权限的事情,但尝试了777对该文件具有相同的结果。

    1 回复  |  直到 14 年前
        1
  •  22
  •   VolkerK    9 年前

    让我们试着获取更多的信息。
    是什么

    $file = 'p:\muh';
    
    error_reporting(E_ALL);
    ini_set('display_errors', true);
    echo 'phpversion: ', phpversion(), "\n";
    echo 'uname: ', php_uname("s r"), "\n"; // name/release of the operating system
    echo 'sapi: ', php_sapi(), "\n";
    
    echo $file, file_exists($file) ? ' exists' : ' does not exist', "\n";
    echo $file, is_readable($file) ? ' is readable' : ' is NOT readable', "\n";
    echo $file, is_writable($file) ? ' is writable' : ' is NOT writable', "\n";
    
    $fp = fopen($file, 'a+');
    if ( !$fp ) {
      echo 'last error: ';
      var_dump(error_get_last());
    }
    else {
      echo "ok.\n";
    }
    

    另请参见: http://docs.php.net/error_get_last