当用fopen()打开文件时,如何将文件指针放在选择的行中(例如从底部看1个石灰)?
答案 0 :(得分:4)
如果您知道所需数据文件中的偏移量,您可以始终fseek ()。当然问题是发现你需要在文件中找到的地方。如果您可以使用SEEK_END作为选项,则偏移量将相对于文件末尾而不是开头,这可能对您有所帮助。
或者,您可以使用file ()函数将文件数据加载到数组中。数组中的每个元素代表一行文件,因此数组中倒数第二个元素将是您想要的项目。
答案 1 :(得分:1)
您可能必须阅读文件计数行结尾“\ n”。类似的东西:
function fseek_line($handle, $count) {
while ((--$count > 0) && (fgets($handle, 4096) !== false)) { }
}
如果您需要在追加模式fopen("file.txt", "a");
答案 2 :(得分:1)
有一个SplFileObject :: seek方法可以将指针定位到第N行。
答案 3 :(得分:0)
不幸的是,这并不容易。由于文件不是按行存储的,因此无法跳过一行或几行。
但请查看此主题:fseek() by line, not bytes?