分享一个php汉字拆分函数

tiyee 2013-09-02 01:34:51
网上的方法都是先用ord判断,判断是属于汉字还是数字还是字母。
然后用substr截取。
实际可以用内置的函数截取,
<?php
$str = '我住在3号楼A座';
$list = array();
$start = 0;
$lengh = mb_strlen($str,'utf8');//这里可以是指定的长度
while (count($list)<$lengh) {
$list[] = mb_substr($str, $start,1,'utf8');//也可以用$list .=
$start++;
}
print_r($list);
?>

mb系列函数有少数的环境没有,需要自己开启
...全文
273 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdgdf566 2013-09-02
  • 打赏
  • 举报
回复
还以为是拆分
www_7di_net 2013-09-02
  • 打赏
  • 举报
回复
md_開頭的函數本來就是針對漢字的啊.沒啥好奇怪的
xuzuning 2013-09-02
  • 打赏
  • 举报
回复
$list[] = mb_substr($str, $start,1,'utf8');//也可以用$list .= 网上的方法都是先用ord判断,判断是属于汉字还是数字还是字母。 然后用substr截取。 实际可以用内置的函数截取 我想,他说的很清楚了。只是举例容易让人....
ImN1 2013-09-02
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
楼上两位真有趣 楼主是在介绍中文字符串截取的方法,并非是要拆分字符串为数组
$str = '我住在3号楼A座';
mb_internal_encoding("gbk");
echo mb_substr($str, 0, 5);

iconv_set_encoding("internal_encoding", "gbk");
echo iconv_substr($str, 0, 5);
但是问题在于他的程序输出就是拆分出一个数组啊
xuzuning 2013-09-02
  • 打赏
  • 举报
回复
楼上两位真有趣 楼主是在介绍中文字符串截取的方法,并非是要拆分字符串为数组
$str = '我住在3号楼A座';
mb_internal_encoding("gbk");
echo mb_substr($str, 0, 5);

iconv_set_encoding("internal_encoding", "gbk");
echo iconv_substr($str, 0, 5);
ImN1 2013-09-02
  • 打赏
  • 举报
回复
$str = '我住在3号楼A座'; print_r(preg_split('##u', $str, -1, PREG_SPLIT_NO_EMPTY)); 你看这个行不行?
EnForGrass 2013-09-02
  • 打赏
  • 举报
回复
是不是可以用正则? NET 正则里有个\G 这样解释的 \G 的 MSDN解释:指定匹配必须出现在上一个匹配结束的地方。与 Match.NextMatch() 一起使用时,此断言确保所有匹配都是连续的。 效果http://blog.csdn.net/q107770540/article/details/6436973

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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