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

我的意思是

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


当前回答

我发现这很有帮助:

function console($data, $priority, $debug)
{
    if ($priority <= $debug)
    {
        $output = '<script>console.log("' . str_repeat(" ", $priority-1) . (is_array($data) ? implode(",", $data) : $data) . '");</script>';

        echo $output;
    }
}

像这样使用它:

<?php
    $debug = 5; // All lower and equal priority logs will be displayed
    console('Important', 1 , $debug);
    console('Less Important', 2 , $debug);
    console('Even Less Important', 5 , $debug);
    console('Again Important', 1 , $debug);
?>

在控制台输出:

重要的 不那么重要 更不重要 同样重要的

您可以通过使用$debug值限制不太重要的日志来关闭它们。

其他回答

function phpconsole($label='var', $x) {
    ?>
    <script type="text/javascript">
        console.log('<?php echo ($label)?>');
        console.log('<?php echo json_encode($x)?>');
    </script>
    <?php
}

我认为最好的解决办法是使用 error_log(内容) 这是输出

2022年编辑:

所以我发现了更好的方法,那就是file_put_contents("php://stdout",内容)

它在没有日志信息的情况下进行写入

试试下面的方法。它正在工作:

echo("<script>console.log('PHP: " . $data . "');</script>");

我发现这很有帮助:

function console($data, $priority, $debug)
{
    if ($priority <= $debug)
    {
        $output = '<script>console.log("' . str_repeat(" ", $priority-1) . (is_array($data) ? implode(",", $data) : $data) . '");</script>';

        echo $output;
    }
}

像这样使用它:

<?php
    $debug = 5; // All lower and equal priority logs will be displayed
    console('Important', 1 , $debug);
    console('Less Important', 2 , $debug);
    console('Even Less Important', 5 , $debug);
    console('Again Important', 1 , $debug);
?>

在控制台输出:

重要的 不那么重要 更不重要 同样重要的

您可以通过使用$debug值限制不太重要的日志来关闭它们。

$variable = "Variable";
echo "<script>console.log('$variable');</script>";

PHP和JavaScript交互。