php五种方法获取文件的扩展名

本文介绍了使用PHP通过五种不同方法来获取文件扩展名的技术细节。这些方法涵盖了从简单的字符串操作到使用PHP内置函数如`pathinfo()`的高级用法。
//方法一
//$str = 'wu.jpg'
function getname($str){
if(strrpos($str,'.')){ //查找命名的点在在文件里最后出现的位置
$name = strrchr($str, '.'); //strrchr():函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符; 注意:是最后一次出现的位置。
echo $name;
}else{
echo '这一个文件没有扩展名';
}

}

getname('wu.dwg');
echo '<br />';

//方法二
$getnr = 'dfd.fdi.jpg';
$wj = strrpos ($getnr,'.');//查找命名的点在在文件里最后出现的位置
$nub = $wj - strlen($getnr);
//echo $nub;
echo substr($getnr ,$nub);//substr截取字符
echo '<br />';


//方法三
function getname2($str){
$newname = explode('.', $str);
print_r(end($newname));
//explode拆分字符串   end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。这里的end里面的内容必需要从其它地方引用进来,要不然就报错
}
echo '.'; getname2('we.exe');
echo '<br />';




//方法四
function get_extension($file)
{
$info = pathinfo($file); 
//pathinfo(path,options) 函数以数组的形式返回文件路径的信息。
//path必需。规定要检查的路径。
//process_sections可选。规定要返回的数组元素。默认是 all。
// 可能的值:
// PATHINFO_DIRNAME - 只返回 dirname
// PATHINFO_BASENAME - 只返回 basename
// PATHINFO_EXTENSION - 只返回 extension
print_r( $info['extension']);
}
echo '.';get_extension('wu.jpg');
echo '<br />';


//方法五


function getex($str){
print_r (pathinfo($str,PATHINFO_EXTENSION));//pathinfo() 函数以数组的形式返回文件路径的信息。
}
echo '.';
getex('test.txt');
echo '<br />';
/*
phpinfo还支持第二个参数
可以传递一个常量,指定返回某一部分的数据:
PATHINFO_DIRNAME - 目录
PATHINFO_BASENAME - 文件名(含扩展名)
PATHINFO_EXTENSION - 扩展名
PATHINFO_FILENAME - 文件名(不含扩展名,PHP>5.2)
 */
PHP获取文件后缀名有多种方法,以下为你详细介绍: ### 使用`pathinfo()`函数 `pathinfo()`函数以数组的形式返回文件路径的信息,可通过指定参数或直接访问数组元素获取文件扩展名。 ```php // 方法一:通过数组元素获取 $file = 'x.y.z.png'; $info = pathinfo($file); $extension = $info['extension']; echo $extension; // 方法二:通过指定参数获取 $file = 'x.y.z.png'; $extension = pathinfo($file, PATHINFO_EXTENSION); echo $extension; ``` ### 使用`SplFileInfo`类 `SplFileInfo`类提供了面向对象的方式来处理文件信息,可通过`getExtension()`方法获取文件扩展名。 ```php $file = 'x.y.z.png'; $fileInfo = new SplFileInfo($file); $extension = $fileInfo->getExtension(); echo $extension; ``` ### 使用字符串处理函数 #### 使用`substr()`和`strrchr()`函数 `strrchr()`函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符,再使用`substr()`函数截取掉点号。 ```php $file = 'x.y.z.png'; $extension = substr(strrchr($file, '.'), 1); echo $extension; ``` #### 使用`substr()`和`strrpos()`函数 `strrpos()`查找 “.” 在字符串中最后一次出现的位置,返回位置,再用`substr()`从该位置开始截取。 ```php $file = 'x.y.z.png'; $extension = substr($file, strrpos($file, '.') + 1); echo $extension; ``` ### 使用数组分割方法 #### 使用`explode()`函数 `explode()`函数将字符串按点号分割成数组,然后取数组的最后一个元素。 ```php // 方法一:使用count()函数获取最后一个元素 $file = 'x.y.z.png'; $arr = explode('.', $file); $extension = $arr[count($arr) - 1]; echo $extension; // 方法二:使用end()函数获取最后一个元素 $file = 'x.y.z.png'; $arr = explode('.', $file); $extension = end($arr); echo $extension; ``` #### 使用`preg_split()`函数 `preg_split()`函数使用正则表达式将字符串按点号分割成数组,然后取数组的最后一个元素。 ```php $file = 'x.y.z.png'; $arr = preg_split('/\./', $file); $extension = end($arr); echo $extension; ``` ### 其他方法 #### 使用`strrev()`函数 先将字符串反转,然后按点号分割,取第一个元素再反转回来。 ```php $file = 'x.y.z.png'; $extension = strrev(explode('.', strrev($file))[0]); echo $extension; ``` #### 使用`preg_match_all()`函数 使用正则表达式匹配所有以点号开头的扩展名,然后取最后一个匹配结果并去掉点号。 ```php $file = 'x.y.z.png'; preg_match_all('/\.[a-zA-Z0-9]+/', $file, $data); $extension = !empty($data[0]) ? substr(end($data[0]), 1) : ''; echo $extension; ``` #### 使用`str_replace()`函数 结合`strrchr()`函数,将最后一次出现的点号替换为空字符串。 ```php $file = 'x.y.z.png'; $extension = str_replace('.', '', strrchr($file, '.')); echo $extension; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值