在PHP面试中或者考试中会有很大几率碰到写出五种获取文件扩展名的方法,下面是我自己总结的一些方法还有一些注释:
一、方法
$file = ‘需要进行获取扩展名的文件.php’;
1. function getExt1($file) {
return substr(strrchr($file,’.‘),1);
}
2. function getExt2($file) {
return substr($file,strrpos($file,’.‘)+1);
}
3. function getExt3($file) {
return strrev(substr(strrev($file),0,strpos(strrev($file),’.‘)));
}
4. function getExt4($file) {
return array_pop(explode(‘.’,$file));
}
5. function getExt5($file){
$arr = explode(‘.‘, $file);
$extension = $arr[count($arr)-1];
return $extension ;
}
6. function getExt6($file) {
$arr = pathinfo($file);
return $arr[‘extension‘];
//或者这样return pathinfo($file,PATHINFO_EXTENSION);
}
7. function getExt7($file) {
$temp = strtok($file, ‘.’);
while($temp !== false ){
$file_extension = $temp;
$temp = strtok(‘.’);
}
return $file_extension;
}
8. function getExt8($file) {
while($dot = strpos($file, “.”))
{
$file = substr($file, $dot+1);
}
return $file;
}
注释:
1. strrchr(string,char)
参数:
string
必需。规定被搜索的字符串。
char
必需。规定要查找的字符。如果该参数是数字,则搜索匹配数字 ASCII 值的字符。
如果该参数多于一个字符,则以第一个字符为准。函数(在php中)查找字符在指定字符串中从左面开始的最后一次出现的位置,如果成功,返回该字符以及其后面的字符,如果失败,则返回NULL。
2.与之strrchr()相对应的是strchr(string,char)函数,它查找字符串中首次出现指定字符以及其后面的字符。
3.strrev($str)用于反转字符串.
返回指向颠倒顺序后的字符串指针。
4.array_pop() 函数删除数组中的最后一个元素。
返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。
5.pathinfo(path,options) 函数以数组的形式返回关于文件路径的信息。
path 必需。规定要检查的路径。
options 可选。规定要返回的数组元素。默认是 all。
可选:
PATHINFO_DIRNAME - 只返回 dirname
PATHINFO_BASENAME - 只返回 basename
PATHINFO_EXTENSION - 只返回 extension
6.
strtok (str,delim) 分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。