首页 > 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上传过来的文件信息,代码如下:
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/wenjian/fs3527.html

转载随意!带上文章地址吧。

标签:php文件 php扩展名

相关文章

发表留言