2012-02-21 112 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! 
} 
相关问题