加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 这只允许某些扩展吗?

发布时间:2020-12-13 22:07:27 所属栏目:PHP教程 来源:网络整理
导读:我发现这个片段说只允许某些文件类型.它会工作吗,有人可以绕过它来上传他们想要的文件类型吗?并且有人可以解释子部分,我不知道它是如何工作的.. ?phpfunction CheckExt($filename,$ext) { $name = strtolower($filename); if(substr($name,strlen($name) -3
我发现这个片段说只允许某些文件类型.它会工作吗,有人可以绕过它来上传他们想要的文件类型吗?并且有人可以解释子部分,我不知道它是如何工作的..

<?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为您提供此功能)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读