- php 通过下标获取的是字节,而不是字符!!!!$str{$i} 获取的是第$i个字节, 而不是第$i 个字符!!!
- PHP可以通过
$str{0} 或者 $str[0] 的形式获取字符串的第一个字节的内容。
今天写了一段程序,出现了问题
$contentLength = mb_strlen($assessment['content']); //计算字符串的长度,以‘字符’计算 $content = ''; for($i = 0; $i <= $contentLength; $i++){ $content .= $assessment['content']{$i}; //开始我本以为通过字符串下标获取的是指定字符,结果出现了乱码,经查阅发现,字符串下标获取的是指定的字节,而不是字符。所以出现了乱码。 if($i % 10 == 0) { $content .= "\n\r"; //每10个字换行 $content .= $assessment['content']{$i}; //str_split } } echo 'content:',$content;
所以以后要特别注意了,之前还真没注意过这个问题,靠 >^_^<
- 那么如果我想获取第$i个字符怎么实现呢。可以这样
$contentLength = mb_strlen($assessment['content']); $content = ''; for($i = 0; $i <= $contentLength; $i++){ //$content .= $assessment['content']{$i}; //这种形式获取的是第$i个字节 $content .= mb_substr($assessment['content'], $i, 1); //通过这种方式获取第$i个字符 if($i % 15 == 0) { $content .= "\n\r"; //每15个字换行 $content .= mb_substr($assessment['content'], $i, 1); //str_split } } echo 'content:',$content;
来源:https://www.cnblogs.com/bneglect/p/12085324.html