如何在php中扩展

如何在php中扩展,php,arrays,extract,Php,Arrays,Extract,我试图使用php从字符串中提取扩展名,然后查看数组内部。看起来我确实得到了扩展,但当我查看阵列内部时,它不起作用,我看不到问题。也许你可以向我建议或指点。多谢各位 代码如下: $file = '/folder/subfolder/file.mp4' //It can be also a url with domain etc. basically anything $extension = pathinfo($file); $final_extension = strtolower($exte

我试图使用php从字符串中提取扩展名,然后查看数组内部。看起来我确实得到了扩展,但当我查看阵列内部时,它不起作用,我看不到问题。也许你可以向我建议或指点。多谢各位

代码如下:

$file = '/folder/subfolder/file.mp4' //It can be also a url with domain etc. basically anything

$extension = pathinfo($file);
$final_extension = strtolower($extension['extension']);

$fileArray = array("mp4","mp3");

if (in_array($final_extension, $fileArray)) {
    echo "Found!";
}
你可以使用正则表达式。 这将是模式:“/。(\w+)$/”

这将是执行:

if (preg_match('/.(\w+)\/?$/', $file, $matches) { $extension = $matches[1]; }
“你有一个失踪的”

更正了下面的行。它应该很好用。测试

$file = '/folder/subfolder/file.mp4';

对我有用(在第一行添加分号后)是的。第一行的分号会使脚本根本无法工作。另外,请尝试在
$extension
数组上使用
print\r()
,以确保您在其中包含信息。要从中选择的重复项已足够多-请在询问之前进行搜索。而且谷歌也不会告诉你解决方案。@MihaiTodor请分开创建你的答案,我会接受。感谢you@Alex我太懒了。只要接受有投票权的那一个就行了。它和我的一样。如果
$file='1http://test.com/“
(注意尾随的“/”?这只是为了获得扩展名。分配扩展名后,他将添加if(in_array())块。好的,我已经添加了尾部斜杠的部分。谢谢。这里真的不需要使用正则表达式。OP发布的代码(在修复了一个缺失的分号后)现在可以正常工作了,这更像是一个问题,尽管我不确定OP是否希望从以下内容中获取“bla”部分:
$file='1!'http://test.com/test.bla“
;):D我的错,我以为他支持来自其他来源的文件,字符串的“http://”部分。考虑到这一点,他可以使用“和!预匹配(“/:\/\/”,$file)”。但Jocelyn是对的,这里的正则表达式太过分了。