$fileName = file ("gstbook.txt");
$rows = count ($fileName);
// $Char is the string that will be added to the file.
if ($Char != '')
{
$Char = str_replace ("\n","<br>",$Char);
$Char = strip_tags ($Char, '<br>');
$newRow = '<tr><td>' . ($username) . ": " . ($Char) . '</td></tr>';
$oldRows = join ('', file ('gstbook.txt') );
$fileName = fopen ('gstbook.txt', 'w');
fputs ($fileName, $oldRows . chr(13) . chr(10) . $newRow);
fclose ($fileName);
}
我正在网站上的教程中工作。这是一个留言簿程序,我正试图变成一个小聊天,用于我的其他应用程序。
我被困的地方与这两行有关:
$oldRows = join ('', file ('gstbook.txt') );
和
fputs ($fileName, $oldRows . chr(13) . chr(10) . $newRow);
我可以告诉它将整个文件输入到一个字符串中。然后输出该字符串。 我无法从谷歌那里得知的是如何让它只将文件的第一个 n 行输入到$ oldRows变量中。
好消息是</tr>
每个文件行的可以充当分隔符。坏消息是我不知道从哪里去。
有人会告诉我如何将$ oldRows变量的输入限制为仅来自$ filename的 n 行或者如何将$ oldRows变量减少到 n 线?
CORRECTION:
我需要获取该文件的最后 n 行(最新添加到最后)
答案 0 :(得分:2)
尝试
array_map( 'trim', file( $filename ) );
这将返回字符串数组,然后您可以使用for / foreach
答案 1 :(得分:1)
我会使用array_slice
以下是一个例子:
$data = file('file.txt');
$data = array_slice($data, count($data) - 1, null, true);
print_r($data);
在上面的代码中,count($data) - 1)
是您设置 n 参数的位置,在这种情况下,它是获取文件的最后一行。