我正在尝试调试插件臃肿的Wordpress安装;所以我添加了一个非常简单的自制记录器来记录所有回调,这些回调基本上都列在Wordpress中的一个最终250多行多维数组中(我不能使用print_r()
,因为我需要正确地捕获它们在他们被召唤之前)。
我的记录器行是$logger->log("\t" . $callback . "\n");
记录器在正常情况下会生成花花公子文本文件,但在此特定任务期间的两个点处,它会添加一些导致我的日志文件不再被正确编码的内容。 Gedit(我在Ubuntu上)不会打开文件,声称不理解编码。在vim中,罪魁祸首腐败回调(我在调试器中找不到,看着数组)大约在中间并打印为^@lambda_546
,在文件末尾有这个可爱的家伙^M
。我的vim中的^M
和^@
是蓝色的,没有为.txt
文件设置颜色主题。我不知道这意味着什么。
我尝试添加is_string($callback)
条件,但结果相同。
有什么想法吗?
答案 0 :(得分:1)
^@
是NUL字符(\0
),^M
是CR(\r
)。不知道为什么他们会被生成。你必须通过源和数据库来查找。 geany应该能够轻松地打开文件。
答案 1 :(得分:0)
似乎这些可爱的家伙是你的回调格式化Windows的结果。
答案 2 :(得分:0)
神秘之处。其中一个回调是匿名函数。调查PHP create_function
文档,我看到一位评论者注意到创建的函数有一个如下名称:chr(0) . lambda_n
。谢谢PHP。
至于\r
。嗯,这更令人尴尬。我的记录器重复使用了我之前编写的一些旧代码,这些代码在\r\n
中执行了结束行。