• 技术文章 >php教程 >PHP源码

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

    2016-06-08 17:22:30原创416
    在 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);
    }

    调用

    代码如下 复制代码

    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核实处理。
    专题推荐:nbsp EXTENSION pathinfo application filename
    上一篇:php 字节换算函数 下一篇:PHP的面向对象一些理解
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php中关于sql数据库数据的问题• 收藏PHP常用自定义函数• uploadify+PHPExcel无刷新导入数据-完善中3• php类常量• php获取网站关键词
    1/1

    PHP中文网