Unknown Modifier 错误 解决办法
yansen 发表于 May 10th, 2008学习正则表达式(php),出现这种错误的几率不是没有,今天我就遇到了。
我在写ysRelatedTags插件的时候,在自己的机器上运行一切正常,但是上传到服务器上就出现了这个Unknown Modifier 错误,自己百思不得其解,后来到PHP China上询问,也没有人知道!自己只好苦啃了!
总得说来,目前我发现出现这种情况的原因有两种:
第一:最常出现的,比如你想匹配html标签,或许你会这样 preg_match('<(\w+)([^>]*)>',$html,$matches)。这样系统会认为 <> 为分隔符,然后解释 <(\w+)([^>]*)>的粗体部分。但是(\w+)([^这是错误的正则表达式,所以会提示Unknown Modifier 错误。解决方法很简单,只要在 <(\w+)([^>]*)> 两边加上分隔符就可以了,比如 /<(\w+)([^>]*)>/。
第二:一般程序中应该使用统一的分隔符。比如,在匹配html标签的时候,我使用的是 / / 作为分隔符,而下面获取E-mail地址的时候却使用了 { } 作为分隔符,在php 5.2.5以前的版本中会出现Unknown Modifier 错误,但是5.2.5以及最新的5.2.6版本是不会出现这种错误的!
个人觉得这都是对正则表达式(php)不熟悉造成的,以后细心学习,使用函数的标准用法,这种问题应该可以避免很多!
个人愚见,仅供饭后闲聊!
欢迎转载此文,转载请注明来源:
Yansen's Blog : http://www.henjiandan.net/yansen/
本文地址 :http://www.henjiandan.net/yansen/?p=986