PHP fopen无法打开文件

8
我尝试了这个:

我已经尝试过这个:

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

?>

这应该以只读模式打开文件,但是它没有打开。test.txt文件与index.php(主项目文件夹)在同一个文件夹中。

文件无法打开。

当我像下面这样使用echo时:

echo $fileip;

它返回了

资源标识符#3

6个回答

16
文件已经成功打开,但是您不能像那样使用echo输出它,因为它是文件指针,而不是文件本身的内容。你需要使用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
@Tobias,或者你也可以直接使用echo file_get_contents(...,但我添加了变量,因为OP在他的问题中提到了它。 - Tatu Ulmanen

3

来自php.net:

成功时返回文件指针资源,错误时返回FALSE。

由于返回了一个resource,表示您的文件已成功打开,您需要进一步操作,例如fwrite等,对您的文件进行操作。因此没有错误,该文件可被操纵


2
一个完整的示例。
<?php
    $fileip = file_get_contents("test.txt");

    echo($fileip);
?>

2
如果fopen调用的结果是一个资源ID,那么它就成功了,因为如果它失败了,它会返回FALSE。那么是什么让你怀疑文件是否真正打开呢?
请查看http://www.php.net/fopen获取更多信息。

2

您只是打开了文件句柄,并没有打开文件本身。

如果您正在使用PHP5进行新的开发,您可以使用$fileip = file_get_contents("test.txt")代替,这将把该文件的内容读入缓冲区。


0

输出文本文件内容:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接