如何使用php回显(或打印)到js控制台

如何使用php回显(或打印)到js控制台,php,Php,在javascript中,我可以使用 console.log("Message here"); 我现在正在编写一个php脚本,并希望打印到调试控制台。使用上述代码在php中不起作用。似乎我需要使用echo或其他命令,但我需要输出显示在输出控制台中,而不是浏览器窗口中。 <?php echo '<script>console.log("Your stuff here")</script>'; ?> 这将适用于数组、对象或变量,并转义可能破坏JS的特殊字

在javascript中,我可以使用

console.log("Message here");
我现在正在编写一个php脚本,并希望打印到调试控制台。使用上述代码在php中不起作用。似乎我需要使用echo或其他命令,但我需要输出显示在输出控制台中,而不是浏览器窗口中。


<?php
   echo '<script>console.log("Your stuff here")</script>';
?>

这将适用于数组、对象或变量,并转义可能破坏JS的特殊字符:

function debugToConsole($msg) { 
        echo "<script>console.log(".json_encode($msg).")</script>";
}
函数debugToConsole($msg){
echo“console.log(.json_encode($msg)。”;
}

Edit:
echo
语句中添加了
json\u encode
。如果
$msg
变量中有引号,这将防止脚本中断。

您也可以尝试以下方法:

<?php
   echo "<script>console.log('$variableName')</script>";
?>

在PHP中打印变量值有更好的方法。其中之一是使用buildin var_dump()函数。如果您想使用var_dump(),我还建议安装Xdebug(from),因为它会生成更可读的打印输出

将值打印到浏览器控制台的想法有些奇怪,但是如果您真的想使用它,有一个非常有用的Google Chrome扩展,PHP控制台,它应该满足您的所有需求。你可以在Vivaldi和Opera中找到它(尽管你需要“下载Chrome扩展”来安装它)。扩展附带有代码中使用的PHP库。

支持所有javascript控制台方法:
断言、清除、计数、错误、组、组折叠、组结束、信息、日志、表、跟踪、时间、时间结束、警告
再加上一些:
警报、groupSummary、groupUncollapse、timeGet

$debug = new \bdk\Debug(array(
    'collect' => true,
    'output' => true,
    'outputAs' => 'script',
));

$debug->log('hello world');
$debug->info('all of the javascript console methods are supported');
\bdk\Debug::_log('can use static methods');
$debug->trace();
$list = array(
    array('userId'=>1, 'name'=>'Bob', 'sex'=>'M', 'naughty'=>false),
    array('userId'=>10, 'naughty'=>true, 'name'=>'Sally', 'extracol' => 'yes', 'sex'=>'F'),
    array('userId'=>2, 'name'=>'Fred', 'sex'=>'M', 'naughty'=>false),
);
$debug->table('people', $list);
这将在脚本关闭时输出相应的
标记

或者,您可以输出为html、chromeLogger、FireHP、文件、纯文本、WebSocket等


upcomming版本包括一个psr-3(logger)实现

,用于处理数组、字符串和对象。我构建了这个函数:

function console_testing($var){

    $var = json_encode($var,JSON_UNESCAPED_UNICODE);

    $output = <<<EOT
    <script>
        console.log($var); 
    </script>
EOT;

    echo $output;

}
功能控制台测试($var){
$var=json_encode($var,json_UNESCAPED_UNICODE);

$output=我不知道如何回显到控制台,但您当然可以写入错误日志,这是最好的。不可能的。php在服务器上运行,无法与浏览器的JS调试控制台“对话”。php最多可以执行类似于
echo“console.log('hello,world');“
”的操作,但这不是php的“日志记录”,这是php输出触发日志记录的JS代码。您能举例说明要在那里打印什么吗?php位于服务器端,日志记录通常使用服务器上的日志文件完成。浏览器控制台用于客户端代码(即JavaScript)。如果你真的想调试某个PHP应用程序,你可能应该联系或@squegy:感谢你指出我应该使用PHP的错误日志,而不是输出到console.Works!但是在我的例子中,我需要回显一个变量,所以代码如下所示:
echo“'console.log(\“$value\”)
数组数据如何?
echo'console.log('.$variable.');
是我认为打印变量的最好方法。@blackandrangecat
echo'console.log('.json_encode($variable)。”
@RobbiNespu json_encode()变量。如果您想使用
console.table(),
,您需要跳转很多圈…或者使用库,例如,但是
$variableName
不能包含引号…您必须先将其转义。请检查其他answers@AbrahamMurcianoBenzadon通过
json\u encode()
…转义将支持、字符串、数组、bool、null。。。。
function console_testing($var){

    $var = json_encode($var,JSON_UNESCAPED_UNICODE);

    $output = <<<EOT
    <script>
        console.log($var); 
    </script>
EOT;

    echo $output;

}