2012-08-28 29 views
0

我需要從字符串中刪除單詞,如果它們超過20個字符。我試過這個,但它只增加了換行符。刪除超過30個字符的單詞嗎?

wordwrap($line,30,"",true); 
+0

一些'preg_replace' regexp可能在這裏很有用。 – Peter

+0

長度超過30個字符的有效單詞怎麼樣,不會刪除它們'破壞'的內容?有一個稱爲「Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu」的當地小山 – 2012-08-28 22:44:18

+0

我不需要那座小山,謝謝。 – user198989

回答

4
$str = 'asd qqqqqqqqqqqqqqqqq weq'; 

var_dump(preg_replace('~\b\S{5,}\b~', '', $str)); 

上述代碼除去一切大於5個連續非空格字符。用5替換30,你會得到你想要的

+0

不錯的一個。 var_dump()和echo有什麼區別? – user198989

+0

@ user198989:'var_dump'用於調試目的 - 它顯示變量的類型,它的長度,以及像數組和對象這樣的非標量類型 - 它們的嵌套數據。所以當你開發並且想要檢查包含什麼變量的時候 - **總是**使用'var_dump'。 PS:比較'echo false;'和'var_dump(false);' – zerkms