當我解析一個站點並打印出明文時,我在打印輸出中得到很多不能通過str_replace刪除的換行符。簡單的html dom php和純文本中的新行
例如,如果我解析eBay和查找結束時,
$ebayEndTime = $this->html_simple_dom->find('span[class=vi-tm-left]', 0)->plaintext;
在打印出來,它看起來像這樣:
\ t \ t \ t \ t \噸(2013年3月19日\ n \噸\噸\噸\噸\ T15:10:11 PDT)\ n \噸\噸\噸
試圖移除它沒有任何效果:
$search = array('\n', '\t', '\r');
error_log("end time:" . str_replace($search, " ", $ebayEndTime));
仍導致:
\噸\噸\噸\噸\噸(2013年3月19日\ n \噸\噸\噸\噸\ T15:10:11 PDT)\ n \ t \ t \ t
我需要做些什麼來移除換行符/製表符?我甚至已經試過這是徹底的:
$search = array('\n', '\t', '\r', '\\n', '\\t', '\\r', '\\\\n', '\\\t', '\\\r', '\\\\n', '\\\\t', '\\\\r');
據我知道,Java要求的轉義字符轉義,但此打印在日誌文件中,它被打印出來作爲使用的HTML代碼'\'?
我曾嘗試nl2br(),因爲它是我還沒有嘗試過,但它也不能工作,它似乎是越來越打印出來使用特殊字符 - 否則,我相信我的str_replace調用會修復它。如果我使用新行/標籤的字符串複製和過去,並通過str_replace調用運行它,所以看起來它使用特殊字符打印出來 – 2013-03-20 00:12:24
這回答了問題......爲什麼我的str_replace做到了 - 它實際上需要正則表達式嗎? http://stackoverflow.com/questions/1703320/php-remove-whitespace-from-within-a-string – 2013-03-20 00:25:44
問題是,單引號字符串字面上處理。你需要雙引號插入。 – pguardiario 2013-04-26 04:40:25