【问题标题】:file doesn't open using PHP fopen文件无法使用 PHP fopen 打开
【发布时间】:2010-03-09 11:27:34
【问题描述】:

我试过这个:

    <?php
$fileip = fopen("test.txt","r");

?>

这应该以只读方式打开文件,但它没有 test.txt 文件与 index.php 位于同一文件夹(主项目文件夹)

文件打不开

当我把回声像:

echo $fileip;

它返回了

资源 ID #3

【问题讨论】:

    标签: php fopen


    【解决方案1】:

    文件确实打开得很好,你不能这样回显它,因为它是一个文件指针,而不是文件本身的内容。您需要使用fread() 阅读实际内容,或者更好的是,使用file_get_contents() 直接获取内容。

    按照自己的方式做:

    $handle = fopen("test.txt", "r");
    $fileip = fread($handle, filesize($filename));
    fclose($handle);
    
    echo $fileip;
    

    或者,使用file_get_contents()

    $fileip = file_get_contents("test.txt");
    
    echo $fileip;
    

    【讨论】:

    • 如果要直接打印内容,不需要先保存到变量中,使用readfile("test.txt");
    • @Tobias,或者你也可以只做echo file_get_contents(...,但我添加了变量,因为 OP 在他的问题中有它。
    【解决方案2】:

    来自 php.net:

    返回一个文件指针资源 成功,错误则为 FALSE。

    由于返回了resource,您的文件已成功打开,您需要对文件进行进一步的操作,例如fwrite等。所以没有错误,文件在那里被操纵

    【讨论】:

      【解决方案3】:

      如果您通过 fopen 调用获得资源 id,那么它成功了,因为如果失败,它将返回 FALSE。那么究竟是什么让您怀疑该文件实际上是打开的?

      查看http://www.php.net/fopen了解更多信息。

      【讨论】:

        【解决方案4】:

        您只打开了一个文件句柄,而不是文件本身。

        如果您使用的是 PHP5 - 您确实应该用于新的开发,您可以改为使用 $fileip = file_get_contents("test.txt") 将这个文件的内容读入缓冲区。

        【讨论】:

          【解决方案5】:

          一个完整的例子。

          <?php
              $fileip = file_get_contents("test.txt");
          
              echo($fileip);
          ?>
          

          【讨论】:

            【解决方案6】:

            输出文本文件内容:

            $fh   = fopen('myfile.txt', 'r');
            $text = fread($fh, filesize('myfile.txt'));
            echo $text;
            

            【讨论】:

              猜你喜欢
              • 2015-01-04
              • 2010-12-17
              • 1970-01-01
              • 1970-01-01
              • 2015-01-19
              • 2016-05-06
              • 1970-01-01
              • 2012-04-05
              相关资源
              最近更新 更多