1
satgi 2012-09-29 00:33:01 +08:00
中英文宽度不一样啊,你试试固定高度,然后overflow: hidden
|
2
mini OP @satgi 恩,本来想用css控制来着,就是先问问php有没有直接的函数能解决,我知道宽度不一样,我估摸着应该有这么一个函数或者结合其他先判断中文英文然后控制不同的字数(先手动的试一下中英文相同宽高时的字节比例) 不过谢了
|
3
haiyang416 2012-09-29 02:08:05 +08:00
不理解你这什么需求是为了什么呀,难道你还要写全英文么?
你用mb_substr($string, 0, 200, 'UTF-8')截取字符串,汉字和英文当然就是等长的。 如果你觉得200英文字符太短的话,就只能自己写个函数,直接正则匹配字符串,如果是全字母和数字,就多截取一些,中文就少截取一些。 或者直接substr截取,汉字的字节要比英文多,同样长度,英文多3倍左右字符。 还要考虑到不要截断单个汉字和英文单词。 |
4
haiyang416 2012-09-29 02:12:02 +08:00
|
5
fmfsaisai 2012-09-29 02:26:50 +08:00
|
6
wsph123 2012-09-29 19:56:14 +08:00
function utf_substr($str,$len){
if(strlen($str)<$len)return $str; for($i=0,$p=0;$i<$len;$i++) $p+=ord(substr($str,$p,1))>127?3:1; $re=substr($str,0,$p); if($re!=$str)$re.='…'; return $re; } 我之前写的函数如何? |
7
mini OP |
8
mini OP @haiyang416
@fmfsaisai 最后用了mb_strimwidth($row['content'],0,100,"...") 觉得substr($row['content'],0,100)也可以。 |