如何读取字串中的每一个中文字?

lochen 2006-08-18 01:04:37
<?
$str="社区中心";
for($i=0;$i<strlen($str);$i++){
echo $str[$i]."<BR>";
}
?>
这样写法对吗?
试过如是英文便没有问题,但是如是中文便出?了(如是uft8字更糟?多出一倍)
中文字是2个字符

应该怎样做才正确读出每个字?谢谢
...全文
143 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjmood 2006-08-23
  • 打赏
  • 举报
回复
学习...
lochen 2006-08-23
  • 打赏
  • 举报
回复
Mlvlfforever(那一年) 的改用mb_strlen不行啊
不能正确出字
lochen 2006-08-23
  • 打赏
  • 举报
回复
谢谢mouzhi(谋之)

这个如何放入array内?
$content2=msubstr($content,0,strlen($content));
echo $content2[0]; //<---不是正确输入的字

想将每个中文字放到入array里
ice_berg16 2006-08-18
  • 打赏
  • 举报
回复
GBK编码:
$re = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$str="社区中心";
preg_match_all($re,$str,$res);
print_r($res);
UTF-8编码
$re = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$str="社区中心";
preg_match_all($re,$str,$res);
print_r($res);
iasky 2006-08-18
  • 打赏
  • 举报
回复
http://cn.php.net/manual/zh/ref.mbstring.php

Multibyte String Functions
mouzhi 2006-08-18
  • 打赏
  • 举报
回复
//字符串截取函数
function msubstr($str,$start,$len)
{
$strlen=$start+$len;
for($i=0;$i<$strlen;$i++)
{
if(ord(substr($str,$i,1))>0xa0)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
{
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr;
}
lvlfforever 2006-08-18
  • 打赏
  • 举报
回复
strlen ===> mb_strlen()

21,889

社区成员

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

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