【求助】 如何将中文字符串分割成单个字符 $county="大中华区"; echo "<font color='red'>".$ci=iconv_strlen($county,"UTF-8")."</font>"; for($j=0;$j<$ci;$j++){ echo $e.=iconv_substr($county,$j,$j); } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php/**************************** * subCNchar() 截取汉字 * * [$str] [要截取的字符串] * [$start] [截取的起始位置] * [$length] [要截取的长度] * [$charset] [字符串编码] ****************************/function subCNchar($str, $start = 0, $length, $charset = "utf-8") { if (strlen($str) <= $length) return $str; $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; preg_match_all($re[$charset], $str, $match); $slice = join("", array_slice($match[0], $start, $length)); return $slice;}$county="大中华区";$res=subCNchar($county,0,1);echo $res;#大 ?> mb_substr,去Php.net看看mb系列就知道了。 大中华区[User:root Time:19:21:36 Path:/home/liangdong/php]$ cat mb.php <?php/* file-encoding : utf-8*//* export LANG=zh_CN.utf-8*/$str = "大中华区";$len = mb_strlen($str, "utf-8");for ($i = 0; $i != $len; ++ $i) { $letter = mb_substr($str, $i, 1, "utf-8"); echo $letter . PHP_EOL;}?> $county="大中华区";$array=str_split($county,2);array(4) { [0] => string(2) "大" [1] => string(2) "中" [2] => string(2) "华" [3] => string(2) "区"} 后来使用了一个 iconv_substr 如何将数据库信息用php存入数组当中 想找一位能远程辅导的php老师 php连接mysql问题 PHP: 知道了年月日三个变量,如何换算出明天的年月日? 菜鸟求助了啊,没分的面试题 一般和持久连接mysql的不同,谁给个例子来啊? 我要运行一个时间比较长的程序,要注意些什么? smartTemplate 有没有中文手册? 请问php4 如何调试 ? 我想把PHP Manual翻译成中文,谁有兴趣合作? PHP中上传文件没有执行 网站性能优化,从哪些方面着手?
<?php
/****************************
* subCNchar() 截取汉字 *
* [$str] [要截取的字符串]
* [$start] [截取的起始位置]
* [$length] [要截取的长度]
* [$charset] [字符串编码]
****************************/
function subCNchar($str, $start = 0, $length, $charset = "utf-8") {
if (strlen($str) <= $length)
return $str; $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match); $slice = join("", array_slice($match[0], $start, $length)); return $slice;
}
$county="大中华区";
$res=subCNchar($county,0,1);
echo $res;
#大
?>
中
华
区
[User:root Time:19:21:36 Path:/home/liangdong/php]$ cat mb.php
<?php
/* file-encoding : utf-8*/
/* export LANG=zh_CN.utf-8*/$str = "大中华区";
$len = mb_strlen($str, "utf-8");
for ($i = 0; $i != $len; ++ $i) {
$letter = mb_substr($str, $i, 1, "utf-8");
echo $letter . PHP_EOL;
}
?>
$array=str_split($county,2);array(4) {
[0] =>
string(2) "大"
[1] =>
string(2) "中"
[2] =>
string(2) "华"
[3] =>
string(2) "区"
}