【问题标题】:Issue with returning the last 10 lines of a file in PHP在 PHP 中返回文件的最后 10 行的问题
【发布时间】:2014-08-30 01:38:27
【问题描述】:

目前,我有这段代码可以返回文件中的最后 10 行:food.txt

<?php
echo `tail /home/food.txt`;

并且输出返回如下内容:

pie apple orange fish lemon peach egg bacon pancake strawberry

问题是,在 PHP 中运行 tail 命令会忽略文件 food.txt 中的行,如果我通过 SSH 运行相同的命令,我会得到:

pie 
apple 
orange 
fish 
lemon 
peach 
egg 
bacon 
pancake 
strawberry

我不能使用 PHP 来打开文件(据我所知),因为文件会随着时间的推移变得非常大,我不确定 PHP 是否能够处理它,总的来说,我的意思是 250,000 多行。

谢谢。

【问题讨论】:

  • “输出返回类似”是否仅适用于在网页中查看它? (默认情况下,换行符不会破坏 HTML 中的流文本。)
  • 为什么 PHP 不能处理这么大的文件(我相信无论如何都不存在)。除了里面有苹果、柠檬和培根的馅饼,听起来确实很好吃
  • 您必须将所有内容存储在一个文件中吗?您应该认真考虑动态创建多个文件,每个文件都有字符限制。这样,您只需检索最后创建的文件。
  • @EdHeal 在缓冲这么大的字符串时,PHP 可能会达到其内存限制。或者,至少,页面需要一段时间才能加载。
  • 看起来你真正需要的是一个数据库。

标签: php tail


【解决方案1】:

如果问题是缺少换行符(从问题中不清楚),请将所有内容都包含在 &lt;pre&gt; 中。

echo '<pre>';
echo `tail /home/food.txt`;
echo '</pre>';

编辑添加:&lt;pre&gt; 默认为您提供等宽字体;如果有问题,您可以使用 CSS 轻松解决。

【讨论】:

    【解决方案2】:

    我们只能使用一个&lt;pre&gt;标签

    第一个

    echo '<pre>';
    echo 'tail /home/food.txt';
    

    第二个

    $string = 'tail /home/food.txt';
    echo str_replace(" " ,"\n", $string);
    

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      相关资源
      最近更新 更多