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

时间:2013-12-05 14:21:28

标签: php

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

所以说我在剧本中有这个:

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

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

有没有办法让PHP打印到控制台?我觉得我在这里缺少一些非常基本的东西。

4 个答案:

答案 0 :(得分:2)

这样做的方法。

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

该代码实际上是否正在运行?确保它在到达之前没有分支

答案 1 :(得分:2)

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

答案 2 :(得分:1)

以下代码适用于我。

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

带标签。

答案 3 :(得分:0)

一个好的方法可能是:

([[21.8974003, 83.39496319999999], [40.2671941, -86.1349019], [10.4805937, -66.90360629999999]], [[50.719164, -1.880769], [37.0903748, -94.5134078], [44.9862701, -93.39398279999999], [47.6062095, -122.3320708], [-27.4697707, 153.0251235], [20.593684, 78.96288]], [[43.2648545, -79.9492978], [39.1767262, -94.4867155], [33.7489954, -84.3879824], [39.7392358, -104.990251], [38.8761634, -77.0337777], [41.0082376, 28.9783589], [36.0753128, -95.95646269999999], [36.0595387, -95.90582429999999], [29.7604267, -95.3698028], [21.3014947, 106.6291304], [21.3014947, 106.6291304], [-16.6868982, -49.2648114], [10.4805937, -66.90360629999999], [45.037149, -92.825929], [33.760818, -78.967556], [45.49340369999999, -73.82329179999999], [39.750545, 37.0150217]])

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

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