是否可以写入字符串或日志到控制台?
我的意思是
就像在JSP中一样,如果我们打印system.out.println("some")这样的东西,它将出现在控制台,而不是页面上。
是否可以写入字符串或日志到控制台?
我的意思是
就像在JSP中一样,如果我们打印system.out.println("some")这样的东西,它将出现在控制台,而不是页面上。
当前回答
或者使用从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
其他回答
一些很好的答案,增加了更多的深度;但我需要一些更简单、更像JavaScript console.log()命令的东西。
我在Ajax应用程序的许多“收集数据并将其转换为XML”中使用了PHP。JavaScript console.log在这种情况下不起作用;它中断XML输出。
Xdebug等也有类似的问题。
我在Windows上的解决方案:
设置一个易于获取和写入的.txt文件 在.ini文件中设置PHP error_log变量以写入该文件 在Windows文件资源管理器中打开该文件,并为其打开预览窗格 使用error_log('myTest');PHP命令发送消息
这个解决方案很简单,大部分时间都能满足我的需求。标准PHP,并且每次PHP写入预览窗格时,预览窗格都会自动更新。
还有一个伟大的谷歌Chrome扩展,PHP控制台,有一个PHP库,可以让你:
在Chrome JavaScript控制台和弹出的通知中看到错误和异常。 转储任何类型的变量。 远程执行PHP代码。 使用密码保护访问。 根据请求对控制台日志进行分组。 跳转到文本编辑器中的错误文件:行。 将错误/调试数据复制到剪贴板(用于测试人员)。
我认为它可以被用来
function jsLogs($data, $isExit) {
$html = "";
$coll;
if (is_array($data) || is_object($data)) {
$coll = json_encode($data);
} else {
$coll = $data;
}
$html = "<script id='jsLogs'>console.log('PHP: ${coll}');</script>";
echo($html);
if ($isExit) exit();
}
# For String
jsLogs("Testing string"); #PHP: Testing string
# For Array
jsLogs(array("test1", "test2")); # PHP: ["test1","test2"]
# For Object
jsLogs(array("test1"=>array("subtest1", "subtest2"))); #PHP: {"test1":["subtest1","subtest2"]}
我已经放弃了上述所有工具,转而使用调试器和记录器。我怎么称赞都不为过!
只需点击右上角的一个标签,或者点击“点击这里”来展开/隐藏。
注意不同的“类别”。您可以单击任意数组展开/折叠它。
从网页
主要特点: 显示全局变量($ globals, $_POST, $_GET, $_COOKIE等) 显示PHP版本和加载的扩展 替换PHP内置的错误处理程序 记录SQL查询 监视代码和SQL查询的执行时间 检查变量的变化 函数调用跟踪 代码覆盖分析,检查执行了哪些脚本行 转储所有类型的变量 文件检查器与代码高亮显示查看源代码 发送消息到JavaScript控制台(仅限Chrome),用于Ajax脚本
试试下面的方法。它正在工作:
echo("<script>console.log('PHP: " . $data . "');</script>");