2010-08-18 152 views
2

我有一些文字,偶爾會包含非常長的字符串,這是打破我的CSS。如何減少很長的字符串的長度?

這是一個例子:

http://iapps.smartphonesoft.com/php/software_details.php?id=358281487

而這一次是細

http://iapps.smartphonesoft.com/php/software_details.php?id=380894729

是否有可能剝離很長* S的線在上述例子中至一個可控的長度?

額外的複雜性是,並不總是* s導致的問題,即在這個例子中它是=字符串是造成問題。

http://iapps.smartphonesoft.com/php/software_details.php?id=371255483

所以我想要寫PHP,其執行的功能,如果$說明中的單個「字」爲> = 30個字符長,它收縮到30個字符。

中的所有文本保持變量$描述中

問候,

格雷格

+0

這不是PHP5特有的,請正確標記。 http://php.net/ChangeLog-5.php(可能還想接受一些答案) – TheLQ 2010-08-18 22:25:43

+0

我在這個評論前約10小時接受了一個答案:) – kitenski 2010-08-23 16:49:49

回答

4

後默認情況下,瀏覽器不會換一個非常長的字。你可以覆蓋這種行爲,即使你需要打破一個字,用CSS(不需要PHP!)

該屬性是word-wrap: break-word;並且適用於所有瀏覽器。

+0

謝謝,這是一個很好的解決方案,已經工作:) – kitenski 2010-08-18 11:48:46

+0

沒問題,高興地幫助。 – 2010-08-18 11:50:29

1

可以爆炸串話的陣列, 然後檢查每一個字的strlen的不> 30

like

$words = explode(" ", $string); 
foreach($words as $k=>$word){ 
    if(strlen($word) >= 30) 
     $words[$k] = substr($word,0,30) ; 
} 

返回Array的一個字符串 與

join(' ' ,$words); 
+0

並且在每行的末尾連接了
。 – Topera 2010-08-18 11:13:33

+0

線的長度是多少?多少字後? – 2010-08-18 11:21:10

+2

與此問題是,(至少與正常比例字體)不同的字符具有不同的寬度。由於行長並不是很長,所以不能依賴平均字符寬度來平衡整個行長度。這就是爲什麼基於角色數量的包裝並不是那麼好。 – 2010-08-18 11:45:30