测试以查看字符串是否包含PHP中的任何一组其他字符串

时间:2012-02-21 02:51:16

标签: php string if-statement

我正在尝试测试网址是否会显示图片,例如“http://i.imgur.com/vLsht.jpg” 通过测试来查看字符串是否包含“.jpg”或“.png”或“.gif”等。

我的代码是:

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

我想做点什么

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

2 个答案:

答案 0 :(得分: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链

答案 1 :(得分:0)

如果我不想使用正则表达式,我就是这样做的:

获取最后4个字符(文件扩展名)

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

然后看看它是否与模式匹配:

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