我发现这个片段说将只允许某些文件类型。它会工作吗?有人可以绕过它来上传他们想要的任何文件类型吗?有人可以解释 substr 部分吗,我不明白它是如何工作的..
<?php
function CheckExt($filename, $ext) {
$name = strtolower($filename);
if(substr($name, strlen($name) -3, 3) == $ext)
return true;
else
return false;
}
?>
最佳答案
检查扩展的更好方法
function checkExt($filename, $ext)
{
$fnExt = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if(!is_array($ext)) {
$ext = (array)$ext;
}
$ext = array_map('strtolower', $ext);
return in_array($fnExt, $ext);
}
你可以这样调用它
var_dump(checkExt('test.temp', 'tmp')); // false
var_dump(checkExt('test.temp', array('tmp', 'temp'))); // true
避免使用 substr,因为扩展长度未知(您也可以使用 substr 和 strrpos,但 php 为您提供了此功能)
关于php - 这只会允许某些扩展吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3066275/