2010-03-21 66 views
0

我使用substr修剪字符串中的前100個字符。但是我需要一個可以修剪特定數量的單詞的函數,而不是字符串中的字符?substr like函數在完整的單詞上工作

$trimmed_details = substr($row->details, 0, 200).'...'; 

有沒有一個內置的函數來做到這一點?

+0

你能提供一個你想要的例子嗎? – geffchang 2010-03-21 16:34:52

回答

1

試試這個:

join(" ", explode(" ", $yourStr, 100)); 
+1

'join'只是一個別名,更好的使用'implode'。恕我直言,它與「爆炸」更好地融合在一起。此外,考慮到這一點:「如果limit(爆炸的第三個參數)被設置並且爲正數,返回的數組將包含最大限制元素,並且最後一個元素包含字符串的其餘部分。」 - 你必須擺脫最後一個。 – middus 2010-03-21 16:08:08

+0

我如何擺脫最後一個? – amit 2010-03-21 16:37:32

+0

你可以將explode和array_slice()結合起來。像這樣: implode(「」,array_slice(explode(「」,$ yourStr,101),0,100)); – Nycto 2010-03-21 17:58:49

1

沒有,在這兩個PHP和MySQL沒有內建函數。因爲在任何一個系統中都沒有數據類型「(語言)字」。你可以發明一些正則表達式來做到這一點,但我會放棄並使用舊的基於字符的修整。