免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7969 | 回复: 9

不同机器的preg_match_all结果不一样?[已解决,见四楼] [复制链接]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2009-12-19 23:01 |显示全部楼层
又遇到preg_match_all的问题,以前遇到过,后来换了php版本,貌似解决了,这次换版本也不行了,再来求救:

情况:一段代码:
  1. $content = "#测试 #abc";//utf-8编码
  2. $count = preg_match_all('/(?:^|\s)#([\pL\pN_\-\.]{1,64})/', strtolower($content), $match);
复制代码


其中“测试”是utf-8编码。一个机器上正常,新安装的机器都不正常,测试的输出为:
[code]
array(2) { [0]=>  array(2) { [0]=>  string(3) "#

论坛徽章:
0
发表于 2009-12-21 11:41 |显示全部楼层
貌似可以注意一下文件本身编码

还有mb_internal_encoding 设定

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2009-12-22 22:00 |显示全部楼层
多谢bs版主。

你说的两个地方都检查了,都正常。

经过多次测试,发现5.2.8以上的版本都不能正常显示,5.2.8 以下的版本可以。

一楼的帖子只提到原另三台机器是pcre版本安装的不对。

另外5.2.9的版本更新说明中有一段是:提高的pcre的运行速度,会不会把这功能直接修改了?

[ 本帖最后由 lsstarboy 于 2009-12-22 22:02 编辑 ]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2009-12-24 22:56 |显示全部楼层
多谢各位的关注!

经过近三天的追踪,从操作系统的选择,到web服务器,再到php和pcre的版本,最终追到了源代码,终于解决了问题,总结如下:

1、linux在某些方面不严格,很多版都可以不加/u参数就能实现utf-8的preg;BSD严格执行标准。

2、php5.2.8以前版本自带的pcre也可以自动实现utf-8。

3、错误根源在于pear的Net_URL_Mapper有bug,提取regex的时候根本没有考虑到utf-8的情况,直接不加任何参数就时行preg_match。

4、把pcre的使用方法完整的读了一次,发现以前有很多地方没注意到。http://www.pcre.org/pcre.txt。学到了/u参数的另一个替代——前置(*UTF8),这个在需要生成表达式的时候很有用。

5、pear虽然不错,但是要为别人的错误负责!

6、nginx和fpm-php是一个黄金搭档!顺便说一下,php5.3.0加入了fpm的选项。

[ 本帖最后由 lsstarboy 于 2009-12-24 22:58 编辑 ]

论坛徽章:
0
发表于 2009-12-25 01:29 |显示全部楼层
lsstarboy 在问题研究上相当严谨,pf

论坛徽章:
0
发表于 2009-12-25 13:16 |显示全部楼层
本帖应该加入精华。

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2009-12-27 20:22 |显示全部楼层
多谢bs,以后会努力。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
发表于 2010-01-24 17:17 |显示全部楼层
又学习了。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
发表于 2012-07-12 20:51 |显示全部楼层
宝贵的经验来之不易 感谢分享 ^_^

论坛徽章:
0
发表于 2012-07-13 10:59 |显示全部楼层
实在是难得经验。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP