网站地图    收藏   

主页 > php专栏 > php文件操作 >

PHP 中获取文件扩展名的正确方法 - php文件操作

来源:自学PHP网    时间:2014-11-28 00:07 作者: 阅读:

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

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

例子代码如下:

  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.    } 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论