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; }} 某IP访问站点无法存储SESSION变量,第一次遇到这样怪异的问题。 PHP抓取网页代码,图片路径问题 PHP俱乐部 求助PHP读取文件数据的MIME-TYPE的问题 用PHP应该怎样编码? 详细解释一下这些代码。 高分求教,php与informix 数据库的连接问题!!不够加分! php+sqlserver分页最简单方法 我的cookie不能用,不知道是怎么回事? 救命!!!php为何无法连接mssql7.0?php.ini怎么设置? 初学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;
}
}