PHP 中获取文件扩展名的正确方法
在 PHP 中,如何获取文件扩展名名呢,我们可能会用字符串操作函数进行处理,但下面举的这些方法只是获取了用户的名字后面带.后面的后缀了并不能做安全验证哦。
比如:
echo substr(strrchr($file_name,'.'),1);
或者
echo end(explode(".", $filename));
最正确的方法应该是使用 pathinfo 函数,如:
echo pathinfo($filename, PATHINFO_EXTENSION); pathinfo 函数支持4种类型的返回: PATHINFO_DIRNAME - 目录 PATHINFO_BASENAME - 文件名(含扩展名) PATHINFO_EXTENSION - 扩展名 PATHINFO_FILENAME - 文件名(不含扩展名)
例子
function get_extension($filename){ return pathinfo($filename,PATHINFO_EXTENSION); }
调用
<?php print_r(pathinfo("/testweb/test.txt")); ?>
以上将输出如下结果:
Array( [dirname] => /testweb [basename] => test.txt [extension] => txt )
如果要上传的用户最好要加以下面方法处理
$extension=$upfile['type']; //这个是由upload上传过来的文件信息
<?php switch ($extension) { case 'application/msword': $extension = 'doc'; break; case 'application/vnd.ms-excel': $extension = 'xls'; break; case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': $extension = 'docx'; break; case 'application/vnd.ms-powerpoint': $extension = 'ppt'; break; case 'application/pdf': $extension = 'pdf'; break; case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': $extension = 'xlsx'; break; default: die('只允许上传doc,docx,xls,pdf,ppt文件 <a href="wend.php">重新上传</a>'); } ?>
教程网址:http://www.phprm.com/code/59160.html
欢迎收藏∩_∩但请保留本文链接。