PHP实现获取文件的后缀名

一 实例

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <htmlxmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
  6. <title>获取上传文件的后缀名</title>
  7. </head>
  8. <body>
  9. <?php
  10. if(!empty($_POST["myfile"]))//判断文件域的值是否为空
  11. {
  12. //利用strrev函数来对文件域中传过来的值的字符顺序进行颠倒
  13. $a = strrev($_POST["myfile"]);
  14. $b = explode(".",$a);//把文件域中传过来的值以"."为分隔符分解为数组
  15. $c = strrev($b[0]);//对数组中的第一个元素值的字符顺序进行颠倒
  16. echo "文件后缀名为:.$c";//输出文件的后缀名
  17. }
  18. ?>
  19. <formname="form"method="post"action="#">
  20. <inputtype="file"name="myfile"><p>
  21. <inputtype="submit"name="sub"value="上传">
  22. </form>
  23. </body>
  24. </html>
二 运行结果
三 实例说明
1、strrev函数说明
说明 
string strrev ( string $string )
返回 string 反转后的字符串。 
参数 
string
待反转的原始字符串。 
返回值 
返回反转后的字符串。
2、explode函数说明
说明 
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是string的一个子串,它们被字符串delimiter作为边界点分割出来。 
参数 
delimiter
边界上的分隔字符。 
string
输入的字符串。 
limit
如果设置了limit参数并且是正数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分。 
如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。
如果limit是0,则会被当做1。
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、付费专栏及课程。

余额充值