我正在从电子邮件中检索文件名,并想检查文件名是否包含音频文件扩展名(例如.mp3 .mp4 .ogg .wav ...)
寻找像str_list_pos这样的函数($ haystack,' .mp3 | .mp4 | .ogg | .wav');
由于
答案 0 :(得分:0)
Regular expressions支持OR运算符|,遍历字符串列表并使用Preg match检查正则表达式匹配。
答案 1 :(得分:0)
为什么不使用这样的东西:
function match_file_extensions($file, $extensions = array()) {
return !!preg_match('#^.*('.implode('|', $extensions).')$#', trim($file));
}
用法:
if(match_file_extensions('test.mp3', ['mp3', 'wav', 'avi'])){
echo 'media file extension found';
}
它基本上创建了一个简单的正则表达式,它匹配任何以任何给定字符串结尾的字符串,然后将给定的字符串与它进行比较。
答案 2 :(得分:0)
给定一个包含文件扩展名的字符串,然后检查它是否在您提供的文件扩展名的文字列表中找到。 'stripos'功能对此很有用......
$fextFound = stripos('.mp3|.mp4|.ogg|.wav|', $fileExtension .'|') !== false;
注意:每个扩展名必须包含最后一个分隔符,因为我们必须找到完全匹配。
作为一个功能:
function validFileExtension($fileExtension, $validExtensions = '.mp3|.mp4|.ogg|.wav|')
{
return stripos($validExtensions, $fileExtension . '|') !== false;
}