Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测试一个字符串是否包含PHP中的任何一组其他字符串_Php_String_If Statement - Fatal编程技术网

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

测试一个字符串是否包含PHP中的任何一组其他字符串,php,string,if-statement,Php,String,If Statement,我正在尝试测试url是否指向图像,例如“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) {

我正在尝试测试url是否指向图像,例如“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
}

这是正则表达式的正确用法,通过:

注意:如果字符串必须像文件扩展名一样出现在末尾,请使用
$
终止它:

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

如果您试图只定位一个子字符串,则更适合使用
stripos()
,但您可以使用正则表达式匹配多个不同的模式,而无需抛出一个长的If/else链。

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

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

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

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

文件扩展名不能真实地指示文件是否为“图像”。您确定要依赖您的方法吗?
$filepath = $row_rsjustpost['link'];
$extension = substr($filepath, length($filepath) - 4);
if (in_array($extension, array(".png", ".jpg", ".gif"))) {
   // Have a party!
}