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文件操作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did27845