实现php截取部分文章

有什么好的方法可以实现截取部分文章内容的...我是这样写的:echosubstr($info[dcontent],0,200);if(strlen($info[dcont... 有什么好的方法可以实现截取部分文章内容的...
我是这样写的:echo substr($info[dcontent],0,200);
if(strlen($info[dcontent])>200)
echo '……';
可显示出来省略号后面却显示乱码,乱码为"……?>"
请问有什么好的解决方法吗
展开
 我来答
everalan
2009-04-14 · TA获得超过1820个赞
知道大有可为答主
回答量:799
采纳率:0%
帮助的人:1431万
展开全部
实际上PHP核心是把所有的文本都安ASIIC来看待的,GBK编码下一个中文字符是2个字节,所以substr时候有可能截取办个中文字符例如stbstr("a中", 0, 2)就把“中”截断了。
mb_string有的服务器没有编译进去。
下边有一个截取中文字符的函数,要求是GBK编码的。
$str是字符串,$strlen是要截取的长度,一个中文算两个字符。
用这个函数就不会出现乱码了
<?php
/* 截取一定长度的完整的中文字符 */
function cnsubstr($str,$strlen=10) {
if(empty($str)||!is_numeric($strlen)){
return false;
}
if(strlen($str)<=$strlen){
return $str;
}
//得到第$length个字符 并判断是否为非中文 若为非中文
//直接返回$length长的字符串
$last_word_needed=substr($str,$strlen-1,1);
if(!ord($last_word_needed)>128){
$needed_sub_sentence=substr($str,0,$strlen);
return $needed_sub_sentence;
}else{
for($i=0;$i<$strlen;$i++){
if(ord($str[$i])>128){
$i++;
}
}//end of for
$needed_sub_sentence=substr($str,0,$i);
return $needed_sub_sentence;
}
}
terrymayx
2009-04-14 · TA获得超过463个赞
知道小有建树答主
回答量:944
采纳率:0%
帮助的人:782万
展开全部
中文截取用 mb_substr
<?php
$str = "中文截取abcd";
print mb_substr($str,2,3,"gb2312"); // 截取a gb2312 是字符。gb2312不行的话就用 utf8
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式