是否可以写入字符串或日志到控制台?

我的意思是

就像在JSP中一样,如果我们打印system.out.println("some")这样的东西,它将出现在控制台,而不是页面上。


当前回答

简短简单,适用于数组、字符串或对象。

function console_log( $data ) {
  $output  = "<script>console.log( 'PHP debugger: ";
  $output .= json_encode(print_r($data, true));
  $output .= "' );</script>";
  echo $output;
}

其他回答

或者使用从PHP调试到控制台的技巧。

首先需要一个PHP辅助函数

function debug_to_console($data) {
    $output = $data;
    if (is_array($output))
        $output = implode(',', $output);

    echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}

然后你可以这样使用它:

debug_to_console("Test");

这将创建如下输出:

Debug Objects: Test

截至2017年,Firebug和FirePHP已被禁用。

我对ChromePHP工具进行了一些小修改,以允许从FirePHP无缝迁移到Firebug,以便通过控制台进行调试。

这篇文章用简单明了的步骤解释

5分钟内从FirePHP迁移到ChromePHP(不破坏现有代码)

在开始代码中…

error_reporting(-1);
ini_set('display_errors', 'On'); 

它的工作

echo 
"<div display='none'>
    <script type='text/javascript'>
        console.log('console log message');
    </script>
</div>";

创建一个

<div>

display="none"

这样就不会显示div,而是

console.log()

函数是用javascript创建的。因此,您在控制台中获得消息。

简单的printf和json_encode:

function console_log($data) {
    printf('<script>console.log(%s);</script>', json_encode($data));
}