2016-10-25 15 views
0

このパターンはregex101でテストされていますが、動作しますが、PHPにロードすると偽り続けます。イメージURL preg_matchが失敗しましたなぜか分かりません

preg_match('/^(https?|ftp):\/\/.*(jpeg|png|gif|bmp|jpg)/gi', $_POST['damageImage'])

$_POSTは、例えばためhttp://domain.com/hello/random-230x190.pngに等しくなります。

私はpreg_match_all()でもまだ偽を受け取ってこれを試しました。私がしたいのは、単純なif-elseステートメントだけです。この簡単なことを終わらせることはできません。それは私が困ってしまった、私はここに乗り越えている全体的な落とし穴は何ですか?

+2

'G'修飾子を削除します。 '/ ^(https?| ftp):\/\ /.*(jpeg | png | gif | bmp | jpg)/ i''。 '$': ''/ ^(https?| ftp):\/\ /.*(jpeg | png | gif | bmp | jpg)$/i'' –

+0

Yea私は実際にそれを以前にはなかったバリエーションを試していましたが、何らかの理由で何か理由があったとしても、そのグローバルチェックをして一点で解決できるかどうかを確認しました。ありがとう! – chris

+0

PHPでpreg \ _matchを使用しているときに[...]の未知の修飾語 'g'が重複していますか?](http://stackoverflow.com/questions/3578671/unknown-modifier-g-in-when-using- preg-match-in-php) –

答えて

1

削除グラム修飾子

$url = 'http://domain.com/hello/random-230x190.png'; 
preg_match('/^(https?|ftp):\/\/.*(jpeg|png|gif|bmp|jpg)/i', $url, $match); 

var_dump($match);