更新ereg调用以使用preg_match时出错



我正在尝试将以下ereg()调用转换为使用preg_match()

if (ereg('(.*/)(.*)$',$fileref,$reg)    )   {

这是我试图用替换的preg_match()调用

if (preg_match('(.*/)(.*)$',$fileref,$reg)  )   {

当我运行此代码时,会出现以下错误:

preg_match(): Unknown modifier '('

导致此错误的ereg()preg_match()之间的语法差异是什么?

preg_match('~(.*/)(.*)$~',$fileref,$reg)

您必须定义分隔符。我使用了~,但您可以使用任何您喜欢的分隔符(它总是第一个字符(。在模式中使用时,模式本身必须以分隔符结尾(但后面可以跟修饰符(,并且必须转义分隔符。

但值得一提的是:该模式只是在寻找/,因此正则表达式只是过大。

if (strpos($fileref, '/') !== false) { /* do something */ }

最新更新