2016-04-07 49 views
1

我对PHP相当陌生,所以如果对此有一个简单的答案,请原谅我。我在stackoverflow中搜索了任何类似的问题,但找不到任何帮助。PHP - 将对象打印到控制台/记录后端功能

我正在研究现有的基于php的应用程序,我只需要能够将对象和阵列的内容打印到日志或控制台进行调试。问题在于函数不是直接被客户端调用,而是牵扯MySQL数据,修改它并返回数据。这意味着像Chrome Logger(https://craig.is/writing/chrome-logger)和在javascript中使用console.log()等选项不会显示在控制台中。

我工作的应用程序有一个简单的日志记录功能,但它只接受字符串。我无法修改日志功能,因此无法打印对象和阵列,但我不知道内容是什么。

有没有人有任何建议如何进行此事?

特别是,我试图找到MySQL查询的结果,所以如果有一个解决方法来获取该数据,那也可以。

非常感谢!

+0

你没有任何地方,你可以输出'你的阵列/对象的print_r()'?或者,您可以检查一下,看看您是否在将'print_r()'输出到页面之前登录到特定帐户(假设您将这些信息存储在$ _SESSION或其他内容中)? –

+0

使用AJAX调用脚本吗?您可以使用Developer Tools的Network选项卡查看原始AJAX响应,该响应将包含脚本打印的所有调试消息。 – Barmar

+0

@Barmar脚本使用的是AJAX,问题是由于查询位于服务器端,而不是客户端,整个查询隐藏在客户端,网络选项卡没有给出结果 –

回答

2

我认为你正在寻找http://php.net/manual/en/function.error-log.php或Monolog,但只解决了一半的问题。您还需要将对象序列化为可以在日志中表示的内容。您可以使用php序列化,json encoide或__toString方法来生成结果。请参阅http://php.net/manual/en/language.oop5.magic.php了解可能有用的魔术方法。

+0

^这是我能找到的最佳答案 - 我使用错误日志并使用_TJson()来打印结果。非常感谢! –

+0

“这是我能找到的最好答案” - 我可以看到你是新来的。请注意,接受答案可以使未来对其他可能有相同问题的人清楚。 – Mawg

1

尝试将日志写入服务器本身的文件。

file_put_contents('log.txt',$ thelog,FILE_APPEND);

http://php.net/manual/en/function.file-put-contents.php

+0

我会加倍努力,因为它会起作用,即使它不回答OP的问题。我想他希望看到JS和PHP输出混合。 – Mawg

+0

感谢Mawg的投票。但是最初提出的问题是“PHP脚本的后端跟踪”。我只是分享我有时做过的事情。它不是完美的解决方案,而是一个快速的解决方 – blokeish

+0

在我发现Chrome Logger之前,我已经使用过自己的解决方案:-)试试看;我相信你会喜欢它 – Mawg

相关问题