使用五种以上方式获取一个文件的扩展名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用五种以上方式获取一个文件的扩展名相关的知识,希望对你有一定的参考价值。
要求: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), ‘.’))); }
以上均为运行。
以上是关于使用五种以上方式获取一个文件的扩展名的主要内容,如果未能解决你的问题,请参考以下文章