Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “故障排除”;分隔符不能是字母数字或反斜杠;将ereg()更改为preg_match()时出错_Php_Regex_Preg Match_Ereg - Fatal编程技术网

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!