Php “故障排除”;分隔符不能是字母数字或反斜杠;将ereg()更改为preg_match()时出错
可能重复:Php “故障排除”;分隔符不能是字母数字或反斜杠;将ereg()更改为preg_match()时出错,php,regex,preg-match,ereg,Php,Regex,Preg Match,Ereg,可能重复: 我得到了这个错误 不推荐使用:第5行的C:\Program Files\EasyHP-5.3.8.1\www\m\img.php中不推荐使用函数ereg() 不推荐使用:第6行的C:\Program Files\EasyHP-5.3.8.1\www\m\img.php中不推荐使用函数ereg() preg_match()函数会给出此错误 警告:preg_match()[function.preg match]:在第6行的C:\Program Files\EasyHP-5.3.8
我得到了这个错误
不推荐使用:第5行的C:\Program Files\EasyHP-5.3.8.1\www\m\img.php中不推荐使用函数ereg()
不推荐使用:第6行的C:\Program Files\EasyHP-5.3.8.1\www\m\img.php中不推荐使用函数ereg()
preg_match()函数会给出此错误
警告:preg_match()[function.preg match]:在第6行的C:\Program Files\EasyHP-5.3.8.1\www\m\img.php中,分隔符不能是字母数字或反斜杠
警告:preg_match()[function.preg match]:在第7行的C:\Program Files\EasyHP-5.3.8.1\www\m\img.php中,分隔符不能是字母数字或反斜杠
使用preg_match()
时,正则表达式必须以分隔符开头和结尾,例如/
,很少有例外(例如,在末尾添加“i”表示大小写不敏感)
e、 g
ereg
已弃用。不要用它preg
函数都是“Perl正则表达式”,这意味着您需要在正则表达式上有某种开始和结束标记。这通常是/
或#
,但任何非字母数字都可以preg_match("/foo/u",$needle,$haystack);
preg_match("#foo#i",$needle,$haystack);
preg_match("@foo@",$needle,$haystack);
preg_match("\$foo\$w",$needle,$haystack); // bad idea because `$` means something
// in regex but it is valid anyway
// also, they need to be escaped since
// I'm using " instead of '
但这不会:
preg_match("foo",$needle,$haystack); // no delimiter!
分隔符可以是任何非字母数字、非反斜杠、非空白字符。但是是的,你是对的,分隔符不见了。啊,是的。谢谢我会更新我的帖子!链接的问题可能会回答他的问题,但这如何使问题重复?当我尝试preg_match(“/foo/g”,“$needle,$haystack”);它不起作用。我得到了一个PHP警告,未知修饰符“g”,根据另一个问题,
/g
模式修饰符在PHP中不起作用。在您的示例中,您需要使用preg\u match\u all
。
preg_match("/foo/u",$needle,$haystack);
preg_match("#foo#i",$needle,$haystack);
preg_match("@foo@",$needle,$haystack);
preg_match("\$foo\$w",$needle,$haystack); // bad idea because `$` means something
// in regex but it is valid anyway
// also, they need to be escaped since
// I'm using " instead of '
preg_match("foo",$needle,$haystack); // no delimiter!