【问题标题】:Display multiline command output in php [duplicate]在php中显示多行命令输出[重复]
【发布时间】:2023-03-14 18:41:02
【问题描述】:

在 php 中,我希望显示命令输出的结果,就像在控制台上显示的那样。为了简化这个例子,我们将使用 ifconfig。问题是 php 将所有行一起运行而不是正确显示。我曾尝试使用 shell_exec()、passthru() 和 system(),但它们都显示相同。

使用这两个问题作为参考,我认为 passthru() 将是答案。

PHP - exec() vs system() vs passthru()

http://www.sitepoint.com/forums/showthread.php?525977-multiline-result-in-exec

这里是php代码:

 <?php
    $output = passthru("ifconfig");
    echo $output;
 ?>

这是在浏览器中显示的内容:

【问题讨论】:

  • 尝试添加header('Content-Type: text/plain'); 因为你可能没有告诉它,你的浏览器会认为这是HTML。在 HTML 中,\r\n 不会呈现新行。
  • 这是您的浏览器在做浏览器所做的事情。例如;忽略空白。试试echo '&lt;pre&gt;'. $output .'&lt;/pre&gt;';
  • 稍微修改一下,浏览器不会认为是text/html,这显然是PHP的默认值。

标签: php


【解决方案1】:

您可以使用 Content-Type 标头从 passthru 获取文本。

<?php
    header('Content-Type: text/plain');
    $output = passthru("ifconfig");
    echo $output;
 ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    相关资源
    最近更新 更多