我正在尝试读取文件并获取第一行内容并在结尾处写入。然后我想回到文件的开头并删除我刚才写的部分内容。
$pklist = "pklist.txt";
$pkhandle = fopen($pklist, 'a+');
$pkdata = fread($pkhandle, 5);
fwrite($pkhandle, "\n" . $pkdata);
rewind($pkhandle);
到目前为止,这是读取前5个字符,然后在最后附加它们。但是在阅读完PHP文档并环顾四周之后,我仍然不确定如何在回放后从头开始切掉一定数量的字符。
顺便说一句。我的文本文件只是一个包含5位数字的列表,每个数字的末尾都有换行符。
答案 0 :(得分:0)
如果文件不是太大,您可以使用这些调用:
$file = file($pklist); // read the file line by line
$file[] = $file[0]; // append first line to the end
$file[0] = null; // delete line 0
// if not working, use unset($file[0]);
$file = array_filter($file); // remove empty elements
$file = implode("\n", $file); // array to string, concat by 1 newline
file_put_contents($pklist, $file); // write contents back to file
文件get被加载到内存中,因此不适合非常大的文件..但对于大小
答案 1 :(得分:0)
<?php
$f = 'pklist.txt';
$fp = fopen($f, 'r+');
$data = fgets($fp);
$contents = fread($fp, filesize($f));
fseek($fp, 0);
fwrite($fp,$contents);
fwrite($fp,$data);
fclose($fp);
?>
那应该有用..
使用r +
打开文件读取第一行并存储到$ data
阅读剩余部分并存储到$内容(一旦文件结束到达,fread就会停止)
快退到文件开头
写$ contents
写$ data
关闭文件
注意:此外,如果您只需要固定数量的字符而不是整行。只需将fgets更改为类似fgets($ fp,5)的内容,只需移动5个字符。