php中如何遍历一个中文字串中的所有字?

WorldCreater 2011-02-15 03:03:08
我有一中文字串
$c = "我有一中文字串";
我想用这样的方法遍历
for($i=0; $i<strlen($c); $i++) {
$c[$i]; ///我想用这样的方法取出中文字符,但是不行, echo $c[$i]; 时,终端可以正常显示,但用作他途时乱码
}
...全文
786 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldCreater 2011-02-15
  • 打赏
  • 举报
回复
mb_internal_encoding("UTF-8"); //this IS A MUST!! PHP has trouble with multibyte when no internal encoding is set!

$dictLen = mb_strlen($tc);

for($i=0; $i<$dictLen; $i++) {

$tcChar = mb_substr($tc, $i, 1);
echo $tcChar;
}
叫我陌北就好 2011-02-15
  • 打赏
  • 举报
回复
str_split可以直接把纯中文的字符串切成数组...
ihefe 2011-02-15
  • 打赏
  • 举报
回复

//1------------非中文字符
$a = 'abcdefg';
$arr = str_split($a,1);
echo "<xmp>";
print_r($arr);
echo "</xmp>";
//-----------------------

//2----------------纯中文(php文件是ANSI编码环境下)
$a = '我是中国人';
$arr = str_split($a,2);
echo "<xmp>";
print_r($arr);
echo "</xmp>";
//-----------------------

//3----------------纯中文(utf-8编码环境下)
$a = '我是中国人哦';
$arr = str_split($a,3);
echo "<xmp>";
print_r($arr);
echo "</xmp>";
//-----------------------

fggeky 2011-02-15
  • 打赏
  • 举报
回复
把字符串存储到数组中再循环遍历出来
life169 2011-02-15
  • 打赏
  • 举报
回复
$c这是中文字符串,每个字符占两个字节
strlen是按字节计算的
所以用strlen取出来的当然是乱码

21,886

社区成员

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

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