尽管未显示的$ _FILES数组,这是用于文件上传,我曾与文件上传的问题,所以我没能获得$ _FILES数组的[类型]的部分呢......但是这仅仅是一个简单的为什么这个功能不起作用的问题......
<?php
function getExtension() {
// global $testFile;
$extension = "./mp3/"; // also tried simply mp3 without the forwards slashes
$testFile = "song.mp3";
if(preg_match($extension, $testFile)) {
echo "match found";
}else {
echo "no match found";
}
}
getExtension();
?>
Run Code Online (Sandbox Code Playgroud)
做这个:
$extension = "/mp3$/";
Run Code Online (Sandbox Code Playgroud)
要么
$extension = "/\.mp3$/";
Run Code Online (Sandbox Code Playgroud)
原因是,你需要分隔符来开始和结束你的表达式(那些是斜杠,尽管可以是任何字符)并且不能在它们之前或之后有任何东西."$"意味着,找到字符串末尾的分隔符之间的字符串.
你可以通过逃避它来保持期限(否则它将意味着任何一个角色,意味着testmp3
匹配).
但实际上最好的答案是在评论中建议的 - php的pathinfo()
- 因为你正在解析文件名.虽然在某些情况下,您可能希望进行其他安全性测试,例如检查mimetype.