Php 导致警告的原因:preg_match():未知修饰符';p';

Php 导致警告的原因:preg_match():未知修饰符';p';,php,regex,preg-match,Php,Regex,Preg Match,我遇到了问题,无法修复此错误。我使用这个上传脚本来检查mime类型 警告:preg_match():未知修饰符“p” 警告:preg_match():未知修饰符“g” 警告:preg_match():未知修饰符'(' 提前谢谢第二次/(结束)后的所有内容都将被考虑。请使用另一个分隔符,如~ ~^image/p?jpeg$~i 或者要匹配模式内的分隔符文字,请使用反斜杠将其转义: /^image\/p?jpeg$/i 选择模式中不需要的定界符最为方便,无需担心转义。常用的定界符有/、~、#、@

我遇到了问题,无法修复此错误。我使用这个上传脚本来检查mime类型

警告:preg_match():未知修饰符“p”
警告:preg_match():未知修饰符“g”
警告:preg_match():未知修饰符'('


提前谢谢

第二次
/
(结束)后的所有内容都将被考虑。请使用另一个分隔符,如
~

~^image/p?jpeg$~i
或者要匹配模式内的分隔符文字,请使用反斜杠将其转义:

/^image\/p?jpeg$/i
选择模式中不需要的定界符最为方便,无需担心转义。常用的定界符有
/
~
#
@
甚至是括号样式的定界符,如
模式


旁注


您可以使用以下方法将所有三个
preg_match
组合为一个:


(?:
启动非捕获。用于测试:

考虑第二次
/
(关闭)后的所有内容。使用另一个分隔符,如
~

~^image/p?jpeg$~i
或者要匹配模式内的分隔符文字,请使用反斜杠将其转义:

/^image\/p?jpeg$/i
选择模式中不需要的定界符最为方便,无需担心转义。常用的定界符有
/
~
#
@
甚至是括号样式的定界符,如
模式


旁注


您可以使用以下方法将所有三个
preg_match
组合为一个:


(?:
启动非捕获。适合测试:

如果使用/as start-end-delimiter,则必须在正则表达式中转义/如果使用/as-start-end-delimiter,则必须在正则表达式中转义/如果使用/as-start-end-delimiter,您的意思是这样的如果(preg\u-match('/^image/p?jpeg$/i',$\u文件['upload']['type'])或preg\u-match('/^image/i',$/i',$\u文件['upload']['type'])或preg\u match('/\^image/(x-?png$/i'),$\u文件['upload']['type'])@jemz如下:
preg\u match('/^image/p?jpeg$~i'
…或
preg\u match('/^image\/p?jpeg$/i'
)。如果(preg\u match('/\\^image/p?jpeg$/i'),$)文件['type'/'upload'/'u文件,[/i'.]或者preg\u match('/^image/(x-)?png$/i',$\u文件['upload']['type'])@jemz如下:
preg\u match('/^image/p?jpeg$~i'
…或
preg\u match('/^image\/p?jpeg$/i'
)。。。