2012-02-21 108 views
0

我試圖測試一個url是否導致圖像,如「http://i.imgur.com/vLsht.jpg」 通過測試,看看是否字符串包含「.JPG」或「巴紐」或符「.gif」等測試以查看一個字符串是否包含任何其他字符串中的任何一組PHP

我CURENT代碼:

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

我想這樣做

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

文件擴展名未真實地指示文件是否爲「圖像」。你確定你想要依靠你的方法嗎? – 2012-02-21 03:14:04

回答

1

這是一個正常的表達通過preg_match()

$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 2012-02-23 19:35:35

0

如果我不想使用正則表達式,這裏就是我會做它:

獲得最後4個字符(文件擴展名)

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

然後看它是否符合一個模式:

if (in_array($extension, array(".png", ".jpg", ".gif"))) { 
    // Have a party! 
} 
相關問題