想要分开文本文件中的每一行,颠倒顺序并回显它。
出现Method SplFileObject::__toString() must return a string value
错误。
Herr的代码:
for ($x=$lines; $x>0; $x--) {
$file = new SplFileObject("post.txt");
$file -> seek($x);
echo $file;
}
答案 0 :(得分:1)
我会将好file()
与array_reverse()
一起使用:
foreach(array_reverse(file('file.txt')) as $line) {
echo $line;
}
答案 1 :(得分:1)
您只是寻找比您输入的文件更长的行。
对于这些文件,这是一个问题,因为在迭代到最后之前,您不会知道文件中有多少行。文本文件的行数不是存储在文件元数据中的东西 - 它与文件大小不同。 SplFileObject旨在使用它的迭代器,它只能seek()
(从头开始到特定的行 - 如果你用这种方式反转行,相当慢),next()
或{{1 (回到开头)。如果你想阅读一个文件,这是一个很好的课程,但不能很好地按照你指示的方式倒退。
要从末尾向后移动线条,您需要使用一个数组,其中每个项目都是文件中的一行。这是旧内置rewind()
(http://php.net/manual/en/function.file.php)的预期用途。
如果您的心脏被设置在SplFileObject上,因为您想在代码中的其他位置使用它,您可以反向构建一个数组:
file