2010-08-18 151 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