2012-02-21 47 views
0

URLが「http://i.imgur.com/vLsht.jpg」のようなものかどうかをテストしようとしています 文字列は「.GIF」「.JPG」または「.PNG」かが含まれているかどうかを確認するためにテストすることによってなど文字列にPHPの他の文字列が含まれているかどうかを確認する

私の海流のコードは次のとおりです。

if (stripos($row_rsjustpost['link'], ".png") !== false) { 
//do stuff 
} 

は、私のような何かをしたいと思います

if (stripos($row_rsjustpost['link'], ".png" || ".jpg" || ".gif") !== false) { 
//do stuff 
} 
+0

ファイル拡張子は、ファイルが「画像」かどうかを真実に示していません。あなたの方法に頼りにしてもよろしいですか? –

答えて

1

012からの正規表現を使用しても問題ありません:

$matches = array(); 
if (preg_match('/\.(png|jpg|gif)/i', $row_rsjustpost['link'], $matches) { 
    // Contains one or more of them... 
} 

// $matches holds the matched extension if one was found. 
print_r($matches); 

注:文字列は、ファイルの拡張子などの終わりに行われなければならない場合、$でそれを終了します。

/\.(png|jpg|gif)$/i 
//-------------^^ 

あなたが唯一の部分文字列を見つけるしようとしていた場合、それはより多くのだろうstripos()を使用するのに適していますが、長いif/elseチェーンを咳止めすることなく、さまざまなパターンを正規表現にマッチさせることができます。

+0

ありがとうございました。 – Aaronrobeson

0

私は正規表現を使用したくなかった場合は、ここで私はそれを行うだろう方法は次のとおりです。

は、最後の4つの文字(ファイル拡張子)

$filepath = $row_rsjustpost['link']; 
$extension = substr($filepath, length($filepath) - 4); 

は、それが一致するかどうかを確認後入手しますパターン:

if (in_array($extension, array(".png", ".jpg", ".gif"))) { 
    // Have a party! 
} 
関連する問題