【问题标题】:Using PHP to Seperate Results of a txt file使用 PHP 分离文本文件的结果
【发布时间】:2012-03-23 20:47:30
【问题描述】:

我正在尝试显示文件的最后 10 行,然后从那里获取这些结果并将它们分解为 10 行..

目前我从示例中找到的代码是:

$filearray = file("test.txt");
$lastfifteenlines = array_slice($filearray,-10);

echo implode($lastfifteenlines, "\n")

它显示的是我需要的 10 个项目,但它不会将它们分解为单独的行,当前结果是:

1.0.0.11 1.0.0.12 1.0.0.13 1.0.0.14 1.0.0.15

我需要将其显示为:

1.0.0.11 1.0.0.12 1.0.0.13 1.0.0.14 1.0.0.15

提前感谢您的帮助!

【问题讨论】:

  • 您能改善您的预期显示效果吗?这两行在我看来是一样的。
  • 你当前的结果和你想要得到的结果看起来一样。使用代码标签。
  • 这个最终输出是一个网站还是一个终端屏幕?对于网站,您应该使用“
    ”而不是“\n”来显示换行符。

标签: php newline text-files


【解决方案1】:

\n 是 html 中的纯空格。

使用echo implode("<br>", $lastfifteenlines)或将它们放入单独的divs,使用列表(ul+li)等。

【讨论】:

    【解决方案2】:

    使用explode 函数,像这样

    $filearray = file("test.txt");
    $lastfifteenlines = array_slice($filearray,-10);
    $impfile = implode($lastfifteenlines, '\n');
    $lines = explode('\n', $impfile);
    
    foreach ($lines as $line){
        echo $line."<br>";
    }
    

    输出将是

    1.0.0.11 
    1.0.0.12 
    1.0.0.13 
    1.0.0.14 
    1.0.0.15
    

    我希望这就是你想要的:)

    【讨论】:

      【解决方案3】:

      您的代码运行良好。您只是看不到换行符,因为 HTML 不会将它们视为换行符。

      在浏览器中查看 HTML 源代码以查看换行符。

      可能的解决方案

      • 在内爆前后回显&lt;pre&gt;&lt;/pre&gt;标签。
      • 在任何输出前添加header("Content-Type: text/plain");。它将导致浏览器将文档解析为文本文件而不是 HTML(请注意,浏览器不会解析任何 HTML 标签)
      • 使用不同的字符串 &lt;br&gt; 内爆数组,这将导致 HTML 中的换行符。

      另外,你的语法是错误的,它是

      implode($glue, $pieces);
      

      不是

      implode($pieces, $glue);
      

      【讨论】:

      • 您假设正在网页上查看输出,并且您的语法批评是错误的。 implode 可以按任意顺序获取参数。
      • @H Hatfield:这是一个基于问题的完全有效的假设......在终端上代码可以工作。
      • @HHatfield 那是唯一的选择......而且,仅仅因为它可以以特定方式完成(这与文档背道而驰)并不意味着它是正确的。语法是错误的,即使它有效。
      猜你喜欢
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多