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

时间:2015-05-20 18:34:42

标签: php

在javascript中,我可以使用

打印到调试控制台
select = new ol.interaction.Select (
    toggleCondition: ol.events.condition.never
)

我现在正在编写一个php脚本,并希望打印到调试控制台。使用上面的代码在php中不起作用。看来我需要使用echo或其他命令,但我需要输出显示在输出控制台内,而不是浏览器窗口。

7 个答案:

答案 0 :(得分:36)

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

答案 1 :(得分:10)

这可以使用数组,对象或变量,也可以转义可能破坏JS的特殊字符:

function debugToConsole($msg) { 
        echo "<script>console.log(".json_encode($msg).")</script>";
}

修改:在json_encode语句中添加了echo。如果$msg变量中有引号,这会阻止您的脚本中断。

答案 2 :(得分:1)

<?php  echo "<script>console.log({$yourVariable})</script>"; ?>

答案 3 :(得分:1)

有更好的方法可以在PHP中打印变量值。其中之一是使用buildin var_dump()函数。如果你想使用var_dump(),我还建议安装Xdebug(来自https://xdebug.org),因为它可以生成更多可读的打印输出。

将值打印到浏览器控制台的想法有些奇怪,但如果您真的想要使用它,那么Google Chrome扩展程序非常有用,它可以满足您的所有需求。您可以在consle.com找到它。它也适用于Vivaldi和Opera(尽管您需要“下载Chrome扩展程序”扩展程序才能安装它)。扩展名附带了您在代码中使用的PHP库。

答案 4 :(得分:0)

您也可以尝试这种方式:

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

答案 5 :(得分:0)

https://github.com/bkdotcom/PHPDebugConsole

支持所有的JavaScript控制台方法:
断言,清除,计数,错误,组,groupCollapsed,groupEnd,信息,日志,表,跟踪,时间,timeEnd,警告
再加上一些:
警报,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);

这将在脚本关闭时输出适当的<script>标签

或者,您可以输出为html,chromeLogger,FirePHP,文件,纯文本,websocket等

即将发布的版本包括psr-3(记录器)实现

答案 6 :(得分:0)

对于适用于数组,字符串和对象的简单操作,我构建了此功能:

function console_testing($var){

    $var = json_encode($var,JSON_UNESCAPED_UNICODE);

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

    echo $output;

}