首頁  >  文章  >  php教程  >  PHP 中获取文件扩展名的正确方法

PHP 中获取文件扩展名的正确方法

WBOY
WBOY原創
2016-06-08 17:22:30945瀏覽

在 PHP 中,如何获取文件扩展名名呢,我们可能会用字符串操作函数进行处理,但下面举的这些方法只是获取了用户的名字后面带.后面的后缀了并不能做安全验证哦。

<script>ec(2);</script>

比如:

 代码如下 复制代码

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);
}

调用

 代码如下 复制代码

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; www.111cn.net
    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文件 重新上传');
   
   }

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn