1
$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行吗?

更正:

我需要获取文件的最后 n行(最新添加到末尾)

4

2 回答 2

2

Try

array_map( 'trim', file( $filename ) );

this will return array of string, then you can use for/foreach

于 2013-03-26T07:37:40.813 回答
1

我会使用array_slice

这是一个例子:

$data = file('file.txt');
$data = array_slice($data, count($data) - 1, null, true);
print_r($data);

在上面的代码count($data) - 1)中,您设置了n参数,在这种情况下,它正在获取文件的最后一行。

于 2013-03-26T07:43:27.477 回答