2010-05-12 90 views
3

我想調試一個插件膨脹WordPress的安裝;所以我添加了一個非常簡單的自制記錄器,它記錄了所有的回調,它們基本上列在Wordpress中的單個,最終250多行多維數組中(我不能使用print_r(),因爲我需要在被調用之前將它們捕獲) )。爲什麼我的PHP日誌文件不完全是文本?

我的記錄行是$logger->log("\t" . $callback . "\n");

記錄器是加入一些東西,使我的日誌文件不再被正確編碼這個特殊的任務過程中產生在正常情況下一個花花公子文本文件,但在兩點。 Gedit(我在Ubuntu上)不會打開文件,聲稱不理解編碼。在vim中,罪魁禍首的回調(我在調試器中找不到,看着陣列)大約在中間,打印爲^@lambda_546,在文件的末尾有這個可愛的人^M。在我的vim中,01​​和^@是藍色的,它沒有爲.txt文件設置顏色主題。我不知道這意味着什麼。

我試着添加一個is_string($callback)條件,但我得到了相同的結果。

任何想法?

回答

0

謎底。其中一個回調是匿名函數。調查PHP create_function文檔,我看到一位評論者注意到創建的函數具有如下名稱:chr(0) . lambda_n。感謝PHP。

至於\r。那麼,這更尷尬。我的記錄器重用了一些我之前編寫的代碼,它們在\r\n中做了結束行。

1

^@是一個NUL字符(\0)和^M是一個CR(\r)。不知道他們爲什麼生成。你必須仔細查看源代碼和數據庫才能找到答案。 geany應該能夠很容易地打開文件。

+0

我抓住geany 0.81,她抱怨說「該文件看起來不像文本文件或不支持文件編碼」。 – 2010-05-12 21:50:21

+0

奇怪。 NUL是否在文本文件的開頭? – 2010-05-12 21:59:54

+1

此外,打開對話框底部的「更多選項」...「事物」將允許您手動選擇和編碼。 – 2010-05-12 22:00:59

0

看起來這些可愛的傢伙是你的窗口回調格式化的結果。

相關問題