字符串处理的时候有时候会碰到截取不完整,怎么判断一个字符串是否是完整的(没有乱码)?
解决方案 »
- php如何根据url参数缓存到memcache?
- 数据库备份后查看 出现中文乱码(在线等)
- a开头b结尾 中间不要存在 单词 ab 的 正则?谁帮忙。不要 替换哦!
- 啊~变猩猩了~!
- 小妹对网页里的菜单一直有些不解~
- 大家一起学习,简单问题,http://yu.diy.40it.com/savedocument/数据库的例子1.php这样无法访问?
- 在WIN2000下的PHP+MYSQL可以直接移植到LINUX下吗?(送100分,先来先得)
- 各位老大,高分求解~PHP+SQL server2k的问题~
- josn转数组
- 请问怎么得到本周、上周、本月、上月开始和结束的时间戳
- 正则求助……
- 大家帮忙看看进来,在线等
因为gbk很恶心的有写字符是有问题的
处理:preg_match_all ("/(.*)小区|(.*)学院|(.*)大厦|(.*)镇|(.*)乡|(.*)村|(.*)交叉口|(.*)交汇处|(.*)街|(.*)路/",
$saddress,
$out, PREG_PATTERN_ORDER);
$saddress,
$out, PREG_PATTERN_ORDER);
没有测试,你的正则问题在于.*匹配了任意字符,所以可能会导致中文不全的情况
看看我写的,不对你自己该把,思路就是这样了,只匹配完整的中文字符
路 的内码 c2b7
衣服 的内码 d2c2b7fe请注意红色的部分,“衣”内码的第二个字节与“服”内码的第一个字节恰好组成“路”如果使用 utf8 编码的数据,就不会这样了$saddress = '中华北路俏唯衣服装店';
$p = "/(.*)小区|(.*)学院|(.*)大厦|(.*)镇|(.*)乡|(.*)村|(.*)交叉口|(.*)交汇处|(.*)街|(.*)路/u";
$saddress = iconv('gbk', 'utf-8', $saddress);
$p = iconv('gbk', 'utf-8', $p);preg_match_all ($p,
$saddress,
$out, PREG_PATTERN_ORDER);echo iconv('utf-8', 'gbk', print_r($out, 1));Array
(
[0] => Array
(
[0] => 中华北路
) [1] => Array
(
[0] =>
) [2] => Array
(
[0] =>
) [3] => Array
(
[0] =>
) [4] => Array
(
[0] =>
) [5] => Array
(
[0] =>
) [6] => Array
(
[0] =>
) [7] => Array
(
[0] =>
) [8] => Array
(
[0] =>
) [9] => Array
(
[0] =>
) [10] => Array
(
[0] => 中华北
))
Array
(
[0] => Array
(
[0] => 中华北路
) [1] => Array
(
[0] => 中华北路
) [2] => Array
(
[0] => 北
) [3] => Array
(
[0] => 北
) [4] => Array
(
[0] =>
) [5] => Array
(
[0] =>
) [6] => Array
(
[0] =>
) [7] => Array
(
[0] => 路
))