簡體   English   中英

解析PHP錯誤日志問題 - 錯誤消息中的換行符(\\ n)

[英]parsing PHP error log issue – line-breaks (\n) inside the error messages

我試圖解析PHP錯誤日志。 問題是通過\\n中斷文件不起作用。

explode(PHP_EOL, $log)

這不起作用,因為有一些錯誤消息本身包含\\n

如何按行破解這樣的文件呢?

提取有問題的日志:

[04-Jan-2012 21:28:48] PHP Notice:  Use of undefined constant AY_FACEBOOK_TAB_URL - assumed 'AY_FACEBOOK_TAB_URL' in /var/www/[hidden]/default.layout.tpl.php on line 36
[04-Jan-2012 22:38:02] PHP Notice:  Use of undefined constant AY_FACEBOOK_TAB_URL - assumed 'AY_FACEBOOK_TAB_URL' in /var/www/[hidden]/default.layout.tpl.php on line 36
[04-Jan-2012 23:43:33] PHP Warning:  file_get_contents(https://graph.facebook.com/4294967295/picture?type=large): failed to open stream: HTTP request failed! HTTP/1.0 500 Internal Server Error
 in /var/www/[hidden]/result.tpl.php on line 11
[04-Jan-2012 23:43:33] PHP Notice:  Undefined variable: image in /var/www/[hidden]/result.tpl.php on line 20

注意HTTP/1.0 500 Internal Server Error后的換行符。

使用正則表達式匹配行的開頭。 它通常是日期/時間(時間戳)。

這段代碼適合我:

<?php
    $content = file_get_contents('/var/log/php-log.log');

    var_dump(preg_split('/\[\d\d-\w{3}-\d{4}\s+\d\d:\d\d:\d\d\]/', $content));

但是,雖然我正在分割行開始模式,但第一個結果項將為空。

嘗試使用"\\r\\n"並確保它們位於雙引號之間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM