1

このコードを使用してpreg_matchを使用して、次の文字列のいずれかと一致する必要があるphpコードがあります

if(preg_match('/(image/gif)|(image/jpg)|(image/jpeg)/',$between))
{
    echo "Match Found";
}

else

echo "Match Not Found";

しかし、私はこのエラーが発生します

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\project\extension.php on line 38

どんな助けでも大歓迎です....私はたくさんグーグルで検索しましたが、解決策が見つかりませんでした...

4

3 に答える 3

1

区切り文字/として使用しているため、正規表現内に表示される場合はエスケープする必要があります。

if(preg_match('/(image\/gif)|(image\/jpg)|(image\/jpeg)/',$between))

または、別の区切り文字を選択できます。

if(preg_match('~(image/gif)|(image/jpg)|(image/jpeg)~',$between))
于 2012-05-12T12:19:57.460 に答える
1

preg_match パターンを次のように置き換えます。

'/(image\/gif)|(image\/jpg)|(image\/jpeg)/'

/ のような文字は常にエスケープする必要があります。

于 2012-05-12T12:20:04.350 に答える
0

/正規表現内で使用したい限り、~代わりに正規表現の区切り文字として使用してください。

if(preg_match('~(image/gif)|(image/jpg)|(image/jpeg)~',$between))
               ^-----------                         ^--------

またはさらに良い:

if(preg_match('~image/(gif|jpe?g)~',$between))
于 2012-05-12T12:20:21.880 に答える