我正在用PHP編寫!PHP過濾字符串輸入,切斷所有換行符,1個字符
有一個用戶字符串輸入,我想切斷所有換行符,1個連續超過1的字符(避免<br /><br />
...)。
例如:
I am a
SPaMmEr!
將成爲:
I am a
SPaMmEr!
或
I am a
.
.
.
.
SPaMmEr!
同樣
我正在用PHP編寫!PHP過濾字符串輸入,切斷所有換行符,1個字符
有一個用戶字符串輸入,我想切斷所有換行符,1個連續超過1的字符(避免<br /><br />
...)。
例如:
I am a
SPaMmEr!
將成爲:
I am a
SPaMmEr!
或
I am a
.
.
.
.
SPaMmEr!
同樣
讓所有線做這樣(如果你想趕上DOS,Mac和Unix換行符):
$lines = explode("\n", str_replace(array("\r\n", "\r"), "\n", $string));
與過濾線多於一個字符可以用preg_grep()
來完成:
$lines = preg_grep('/^.{2}/', $lines);
或者使用正則表達式完整的過程:
preg_match_all('/^.{2}.*$/', $string, $matches);
$lines = $matches[0];
或者,如果你不需要包含所有剩餘的線的陣列,你可以用一個呼叫刪除不需要的字符串:
$string = preg_replace('/^.?$\n/m', '', $string);
非常感謝你,我會用它! – Gal 2009-11-18 16:07:00
如何:
$str = str_replace(array("\n", "\r"), '', $str);
其中$ str是您的用戶輸入。
編輯:
對不起,這個代碼將刪除所有行不顧,仍然可能會派上用場。
\ n是新行的有效輸入,以及\ r \ n和\ n \ r。運行Regex或str_replace以\ n和\ n的所有組合替換\ n,並且可以使用explode(「\ n」,$ string),並檢查數組中所有項的一個字符或空字符。 您可以刪除這些文件,或者將其替換爲重複字符的單個實例,例如,我用一個換行符作爲新的段落,所以它會破壞這個。
爲什麼不使用正則表達式此:
## replace 1 or more new line symbols with single new line symbol
$empty_lines_trimmed = preg_replace('"(\r?\n)+"', "\n", $empty_lines);
什麼呢* 1個字符是超過1是否意味着? – 2009-11-18 15:51:36
要轉義HTML標籤,您可以將它們放入反引號中。 (') – Brandon 2009-11-18 15:51:51
你的意思是*重複的行*? – 2009-11-18 15:55:30