php 内容显示问题 php乱码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 substr是按字节切的,但utf-8和gbk的中文都是多字节,最后一个字切了一半就乱码了用mb_substr试试 substr会把中文字符强制截断,从而乱码,不知道你是不是这个原因,可以试下mb_substr!另外,你这个问题可以用css来解决定好现实区域,然后设置超出省略overflow: hidden;text-overflow: ellipsis; 好像不行,是不是gbk的在计算文字的时候会不会把$content的样式也算进来啊!比如:<? if(strlen($content)<=90){?><?=$content;?><? }else{echo substr($content ,0,90)."...";}?>,要是$contentde 文字不到45个的话没有问题,只要超过45个,怎么就只显示两三个字,然后就不显示啦!查看源代码,就会在内容的前面有很多样式的代码(<p><font style="····">内容··········内容</font></p>)这样的,这个是不是要在显示的时候再删除样式啊什么的? 你需要的是先将所有的html标签去除后再截取,截取的时候还要区分是否带有中文。 $res = mb_substr('针对中文',0,2,'uft8'); 看看这个讨论 http://bbs.csdn.net/topics/340260333 怎么去掉在截取啊?过滤HTML标签采用的函数式strip_tags这个是PHP自带的,要是你想要做更全面的过滤就需要自己去写正则来匹配去除,但是如果要求不高的话一般采用这个函数就可以了,然后你再判断长度,然后再截取。 /** * 实现中文字串截取无乱码的方法 */function getSubstr($string, $start, $length) { $string=strip_tags($string); if(mb_strlen($string,'utf-8')>$length){ $str = mb_substr($string, $start, $length,'utf-8'); return $str.'...'; }else{ return $string; }} php中读取表单名相同的问题? 北京市民免费注射甲流疫苗,明摆着对外地人的歧视嘛 ■■■在网站放在google的广告,百度会不会取消收录的我页面? 怎样生成一个文本文件 乱码 请教如何去掉一串数字前面的0? 怎么在php中动态生成数组,并付值 一个关于mysql的问题 坚持了5、6年,PHP程序生涯似乎真的要走到尽头了。。。 Parse error: syntax error, unexpected ';' 错误如何解决 提示在16行 初学wordpress,get_header()和get_footer()这两个函数调用不了 thinkphp 在本地环境无法打开
用mb_substr试试
比如:<? if(strlen($content)<=90){?><?=$content;?><? }else{echo substr($content ,0,90)."...";}?>,要是$contentde 文字不到45个的话没有问题,只要超过45个,怎么就只显示两三个字,然后就不显示啦!查看源代码,就会在内容的前面有很多样式的代码(<p><font style="····">内容··········内容</font></p>)这样的,这个是不是要在显示的时候再删除样式啊什么的?
$res = mb_substr('针对中文',0,2,'uft8');
怎么去掉在截取啊?过滤HTML标签采用的函数式strip_tags这个是PHP自带的,要是你想要做更全面的过滤就需要自己去写正则来匹配去除,但是如果要求不高的话一般采用这个函数就可以了,然后你再判断长度,然后再截取。
/**
* 实现中文字串截取无乱码的方法
*/
function getSubstr($string, $start, $length) {
$string=strip_tags($string);
if(mb_strlen($string,'utf-8')>$length){
$str = mb_substr($string, $start, $length,'utf-8');
return $str.'...';
}else{
return $string;
}
}