从PHP脚本打印/回显到控制台


Printing / Echoing To Console from PHP Script

我正在调试一个PHP脚本,该脚本运行几个SQL查询并向一组用户发送电子邮件。我确信这是一件非常基本的事情,但每次我尝试回显、打印或打印时,它都不会在运行脚本时出现。

假设我在脚本中有这个:

print("This should print");
echo "on the command line";

当我通过命令行php script.php运行脚本时,它在运行脚本时实际上不会向命令行打印任何内容。

有没有办法让PHP打印到控制台?我觉得我错过了一些非常基本的东西。

一个好的方法可以是:

function log($message)
{
    $message = date("H:i:s") . " - $message - ".PHP_EOL;
    print($message);
    flush();
    ob_flush();
}

它将向您的终端输出您呼叫的每一条线路。只需使用:

log("Something");
log("Another line");

这就是这样做的方法。

需要检查的是输出缓冲http://php.net/manual/en/function.ob-flush.php

那个代码真的在运行吗?确保它在到达之前没有分支

下面的代码对我来说很好。

<?php
    print("This should print");
    echo "on the command line";
?>

带有标签。

我知道它很旧,但我会发布我自己的解决方案,以防有人遇到类似的情况。我遇到了一个问题,当DSN配置不正确时,遗留的命令行PHP脚本不会打印或回显任何内容到终端,并且脚本被卡住了很长一段时间(不确定有多长时间,从未等待它自己终止)。将ob_end_flush()放入脚本的入口行后,输出返回到终端。因此,事实证明,所有输出都是缓冲的,由于脚本在某个时刻卡住了,所以输出保持缓冲状态,因此从未到达终端。