PHP从一个标准 url 里取出文件的扩展名

本文介绍了如何使用PHP从标准URL中获取文件的扩展名,包括使用`parse_url`结合`basename`,`pathinfo`以及通过查找特定字符位置的方法。示例代码详细展示了每种方法的实现过程。

<?php

/**
从一个标准 url 里取出文件的扩展名
* 方法一
$arr = array(4) { 
["scheme"]=> string(4) "http" 
["host"]=> string(7) "127.0.0.1" 
["path"]=> string(19) "/202101b/index.html" 
["query"]=> string(17) "id=h9lhg9&p=6&g=1" }

$ext =array(2) {  [0]=> string(5) "index"  [1]=> string(4) "html" }   
*/

$url="http://127.0.0.1/202101b/index.html?id=h9lhg9&p=6&g=1";
$arr = parse_url($url);   //解析路由
$file = basename($arr['path']); //获取path部分内容
$ext = explode(".",$file);  //分割字符串
echo $ext[1];  //获取扩展名


/*
从一个标准 url 里取出文件的扩展名
方法二
pathinfo(path,options)  以数组的形式返回文件路径的信息
options:
    PATHINFO_DIRNAME - 只返回 dirname
    PATHINFO_BASENAME - 只返回 basename
    PATHINFO_EXTENSION - 只返回 extension
array(4) { 
["dirname"]=> string(24) "http://127.0.0.1/202101b" 
["basename"]=> string(28) "index.html?id=h9lhg9&p=6&g=1" 
["extension"]=> string(22) "html?id=h9lhg9&p=6&g=1" 
["filename"]=> string(5) "index" }
*/

$temp = pathinfo($url,PATHINFO_EXTENSION);  //直接获取extension部分内容
$temp = explode("?",$temp); //分割字符串
echo $temp[0]; //获取扩展名

/*
从一个标准 url 里取出文件的扩展名
方法三
*/

$url = basename($url);//string(28) "index.html?id=h9lhg9&p=6&g=1"
$pos1 = strpos($url,"."); //查找指定字符串第一次出现的位置
$pos2 = strpos($url,"?");
if(strstr($url,"?")){  //strstr搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。
   echo  substr($url,$pos1 + 1,$pos2 - $pos1 - 1);  //截取扩展名
} else {
   echo  substr($url,$pos1); //截取扩展名
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐月浅歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值