好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

例子代码如下:

function  get_extension( $filename ){  return   pathinfo ( $filename ,PATHINFO_EXTENSION);  }    //调用代码如下   <?php  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 ;      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文件 <a href="wend.php">重新上传</a>' );           } 

查看更多关于PHP 中获取文件扩展名的正确方法 - php文件操作的详细内容...

  阅读:62次