首页 > 代码库 > 使用五种以上方式获取一个文件的扩展名

使用五种以上方式获取一个文件的扩展名

要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)

第一种:

<?php 
$string= ‘dir/upload.image.jpg‘; 
$tok = strtok($string, ‘.‘); //使用strtok将字符串分割成一个个令牌 
while ($tok) 
{ 
  $arr[]= $tok;  
  $tok = strtok(‘.‘); //该函数会保持它自己的内部指针在字符串中的位置, 
                        //如果想重置指针,可以将该字符串传给这个函数.  
                        //所以当第二次调用strtok()函数时,如果对上一次的已分割的字符串进行分割,第1个参数可以省略 
} 
$count= count($arr); 
$i= $count-1; 
$file_type= $arr[$i]; 
?>  

第二种:

<?php 
$string= ‘dir/upload.image.jpg‘; 
$arr= explode(‘.‘, $string); //使用explode()函数分割字符串,返回值是一个数组 
$count= count($arr); 
$count-=1; 

$file_type= $arr[$count];//利用数字索引 
$file_type = array_pop($arr);//将数组最后一个单元弹出(出栈),用一个变量接住 
?> 

第三种:

<?php 
$string= ‘dir/upload.image.jpg‘; 
$i= strrpos($string, ‘.‘);   //得到指定分割符在字符串的最后一次出现的位置 
$file_type= substr($string, $i);//截取字符串 
?> 

第四种:

<?php 
$string= ‘dir/upload.image.jpg‘; 
$file_type= strrchr($string, ‘.‘); //取得某字符最后出现处起的字符串。 
?> 

第五种:

<?php 
$string= ‘dir/upload.image.jpg‘; 
$arr= pathinfo($string);  //返回文件路径的信息    print_r($arr); 
$file_type= $arr[‘extension‘]; 
?> 

第六种:

<?php 
$string= ‘dir/upload.image.jpg‘; 
eregi(‘^["."]+$‘, $string, $arr);//用正则表达式来分割 
$count= count($arr); 
$count-=1; 
$file_type= $arr[$count]; 
?>

http://blog.csdn.net/xcyuzhen/article/details/4634692

 

另外一种:

function get_ext1($file_name){

return strrchr($file_name, ‘.’);

}
function get_ext2($file_name){ return substr($file_name, strrpos($file_name, ‘.’)); }
function get_ext3($file_name){ return array_pop(explode(‘.’, $file_name)); }
function get_ext4($file_name){ $p = pathinfo($file_name); return $p[‘extension‘]; }
function get_ext5($file_name){ return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), ‘.’))); }

 

以上均为运行。

使用五种以上方式获取一个文件的扩展名