请问在php中怎么截取一部分中文字符串?

bamboo789 2002-11-20 08:40:20
假如有一段中文字符串,我想从中截取一部分过来,请问有什么办法可以做到。要知道如果直接用SUBSTR函容易出现在一个汉字的中间截取,这样截取的字符串就变了。请问各位高手有什么办法?
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
anziqi 2002-11-20
  • 打赏
  • 举报
回复
<?php
/*_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
mb_substr字符的截取,不会出现乱码.他是一个一个字符算的.

需要加载mbstring在php.ini中
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-*/
echo mb_substr("啊方腊qwerq十分可;",0,5);
?>
xizi2002 2002-11-20
  • 打赏
  • 举报
回复
转:
改进的中文字符串截取函数
看了znsoft的<<字符串截取函数中文版>>后,做了一些改进。
//-----------------------中文字符串截取----------------
function csubstr($str,$start,$len)
{
$strlen=strlen($str);
if ($start>=$strlen)
return $str;
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
if(ord(substr($str,$i,1))>0xa0)
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,2);
$i++;
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1);
}
if ($clen>=$start+$len)
break;
}
return $tmpstr;
}
//-------------------------------------------------
//示例
echo csubstr("123中国人",0,4);
echo csubstr("123中国人",2,4);

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧