【发布时间】:2010-03-09 11:27:34
【问题描述】:
我试过这个:
<?php
$fileip = fopen("test.txt","r");
?>
这应该以只读方式打开文件,但它没有 test.txt 文件与 index.php 位于同一文件夹(主项目文件夹)
文件打不开
当我把回声像:
echo $fileip;
它返回了
资源 ID #3
【问题讨论】:
我试过这个:
<?php
$fileip = fopen("test.txt","r");
?>
这应该以只读方式打开文件,但它没有 test.txt 文件与 index.php 位于同一文件夹(主项目文件夹)
文件打不开
当我把回声像:
echo $fileip;
它返回了
资源 ID #3
【问题讨论】:
文件确实打开得很好,你不能这样回显它,因为它是一个文件指针,而不是文件本身的内容。您需要使用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;
【讨论】:
echo file_get_contents(...,但我添加了变量,因为 OP 在他的问题中有它。
来自 php.net:
返回一个文件指针资源 成功,错误则为 FALSE。
由于返回了resource,您的文件已成功打开,您需要对文件进行进一步的操作,例如fwrite等。所以没有错误,文件在那里被操纵。
【讨论】:
如果您通过 fopen 调用获得资源 id,那么它成功了,因为如果失败,它将返回 FALSE。那么究竟是什么让您怀疑该文件实际上是打开的?
查看http://www.php.net/fopen了解更多信息。
【讨论】:
您只打开了一个文件句柄,而不是文件本身。
如果您使用的是 PHP5 - 您确实应该用于新的开发,您可以改为使用 $fileip = file_get_contents("test.txt") 将这个文件的内容读入缓冲区。
【讨论】:
一个完整的例子。
<?php
$fileip = file_get_contents("test.txt");
echo($fileip);
?>
【讨论】:
输出文本文件内容:
$fh = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;
【讨论】: