2009-10-18 90 views
1

我要清理一些解析的文本,如替換文本功能

\ n中說,\ r \ n \ r \ n \ r \ n我看着你的眼睛我親愛的\ r \ n \ r \ n我看見綠色滾動的森林\ r \ n \ r \ n我看到遠處的天空\ r \ n \ r \ n他們變成了雨\ r \ n \ r \ n \ r \ n我看到高聳的鷹。 。更多\ n

所以我想擺脫「\ n」,「\ r \ n」,「\ r \ n \ r \ n」,「\ r \ n \ r \ n \ r \ n「,」\ r \ n \ r \ n \ r \ n \ r \ n「和」\ r「。這就是我的解析文本中出現的所有組合。

有沒有辦法在PHP中做到這一點?

回答

1

什麼

$text = str_replace(array("\n", "\r"), '', $text); 

,將刪除所有新行字符。例如,如果您希望將它們作爲新行,我會將替換爲<br />(如果還是更好,請使用PHP的nl2br()),或將其標準化爲正常文本,例如\n

+1

或只使用內置的nl2br(http://php.net/manual/en/function.nl2br.php) – 2009-10-18 23:57:38

+0

哦,是的 - 那個人完全放棄了我的想法。 – alex 2009-10-19 00:00:13

+0

完美的作品,不可能有更好的希望。謝謝! – 2009-10-19 00:13:40

2

如果你只是想換行1,而不是多,我建議這樣的:

$clean = preg_replace(array("/\r+/","/(\n){2,}/"),array("","\n"),$text); 

否則str_replace函數來去掉換行符或nl2br將做的工作。你也可以適應正則表達式與BR標籤更換1個以上的換行:

$clean = preg_replace(array("/\r+/","/\n+/"),array("","<br />"),$text);