用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

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

时间:2015-01-23  来源:西部数据  作者:西部数据

在 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.    } 
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门