首页 > php代码 > PHP 中获取文件扩展名的正确方法

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

欢迎收藏∩_∩但请保留本文链接。

标签:substr explode

相关文章

发表留言