当前位置:首页 > PHP教程 > php文件操作 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-23 08:48:35 浏览: 评论:0 

在 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 – 文件名(不含扩展名)

例子代码如下:

  1. function get_extension($filename){ 
  2. return pathinfo($filename,PATHINFO_EXTENSION); 
  3.  
  4. //调用代码如下 
  5. <?php 
  6. print_r(pathinfo("/testweb/test.txt")); 
  7. ?> 
  8. //以上将输出如下结果: 
  9. Array( 
  10.  [dirname] => /testweb 
  11.  [basename] => test.txt 
  12.  [extension] => txt 

如果要上传的用户最好要加以下面方法处理:

$extension=$upfile['type']; //这个是由upload上传过来的文件信息,代码如下:

  1. switch$extension ) 
  2.    { 
  3.     case 'application/msword'
  4.     $extension ='doc'
  5.     break;
  6.     case 'application/vnd.ms-excel'
  7.     $extension ='xls'
  8.     break
  9.     case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  10.     $extension ='docx'
  11.     break
  12.     case 'application/vnd.ms-powerpoint'
  13.     $extension ='ppt'
  14.     break
  15.     case 'application/pdf'
  16.     $extension ='pdf'
  17.     break
  18.     case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  19.     $extension ='xlsx'
  20.     break
  21.     default
  22.     die('只允许上传doc,docx,xls,pdf,ppt文件 <a href="wend.php">重新上传</a>'); 
  23.      
  24.    } 

Tags: PHP扩展名 PHP文件

分享到: