php-frad文件函数



我编写了下面的代码来两次输出文件的内容。但它只做过一次。为什么?

文本文件内容如下:

My name is Sam. Sam I am.
My name is Chris and Chris I am.
The brown fox jumped over the fence.

代码如下:

<?php
$file = "files/info.txt";
$handle = fopen($file, "rb");
echo fread($handle, filesize($file));
echo fread($handle, filesize($file));
?>

输出:

"My name is Sam. Sam I am. My name is Chris and Chris I am. The brown fox jumped over the fence."

调用fread()"用完"文件,为了再次fread((),您必须使用倒带($handle)将读取指针移回文件的开头

对于第一个fread(),文件指针移动到文件的末尾,所以第二次不打印任何内容。执行下面的代码,你就会知道。

<?php
$file = "info.txt";
$handle = fopen($file, "rb");
echo fread($handle, filesize($file)-10);
print "-----";
echo fread($handle, filesize($file));
?>

这是因为您已经使用该句柄读取了整个内容。句柄是指向文档的指针。如果你只读取文件的第一个字节(比如前10个字节),就像这样。

fread($handle, 10);

然后下次你调用fread()时,它将从你停止的地方开始。

在您的示例中,第一次调用fread()时使用的是filesize,它会使指针指向文件的末尾。下一次你打电话给fread,就没有什么可回的了,所以你的"回声"回声也没有回来。

希望这能有所帮助,请查看php文档中的fread()和其他文件处理函数,在php.net

中获得更多解释

相关内容

  • 没有找到相关文章

最新更新