问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

写一个php函数,尽可能高效的,从一个url中提取出文件的扩展名。

发布网友 发布时间:2022-04-29 10:23

我来回答

4个回答

懂视网 时间:2022-04-29 14:45

PHP 获取url地址中文件的扩展名

$url = 'http://www.abc.com/ab/cd/e.php?id=1&data=2#laowen';
echo pathinfo( parse_url($url)['path'] )['extension'];
echo pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_EXTENSION );

解析:

parse_url($url);

parse_url() 该函数解析url、返回其组成部分;返回关联数组

  scheme    方案;如 http
  host     域名
  port
  user     用户
  pass 
  path     路径
  query     在问号?之后
  fragment   在散列符号#之后

eg: print_r( $url );

Array( 
  [scheme] = >http 
  [host] => www.abc.com 
  [path] => /ab/cd/e.php 
  [query] => id=1&data=2 
  [fragment] => laowen 
)

扩展:

打印解析url    var_dump(parse_url($url));
打印url的scheme    var_dump(parse_url($url, PHP_URL_SCHEME));
打印url的user    var_dump(parse_url($url, PHP_URL_USER));
打印url的pass    var_dump(parse_url($url, PHP_URL_PASS));
打印url的host    var_dump(parse_url($url, PHP_URL_HOST));
打印url的port    var_dump(parse_url($url, PHP_URL_PORT));
打印url的path    var_dump(parse_url($url, PHP_URL_PATH));
打印url的query    var_dump(parse_url($url, PHP_URL_QUERY));
打印url的fragment   var_dump(parse_url($url, PHP_URL_FRAGMENT));
pathinfo('/ab/cd/e.php');

pathinfo()解析文件路径,返回其组成部分;返回关联数组

dirname    文件路径
basename   文件名+扩展名
extension   最后一个扩展名
filename   文件名

eg: print_r( pathinfo('/ab/cd/e.php') );

Array(
  [dirname] => /ab/cd
  [basename] => e.php
  [extension] => php
  [filename] => e
)

扩展:

打印解析路径    var_dump( pathinfo($path) );
打印路径的父级路径  var_dump( pathinfo($path, PATHINFO_DIRNAME) );
打印路径的尾名    var_dump( pathinfo($path, PATHINFO_BASENAME) );
打印路径的最后的扩展名 var_dump( pathinfo($path, PATHINFO_EXTENSION) );
打印路径的文件的名字   var_dump( pathinfo($path, PATHINFO_FILENAME) );

相关文章教程推荐:php入门

热心网友 时间:2022-04-29 11:53

第1种方法:substr(strrchr($file, '.'), 1);

第2种方法:substr($file, strrpos($file, '.')+1);

第3种方法:end(explode('.', $file));

第4种方法:

$info= pathinfo($file)

echo$info['extension'];

第5种方法:pathinfo($file, PATHINFO_EXTENSION);

热心网友 时间:2022-04-29 13:11

funciton get_extensionName($url){
return array_pop(explode(".", strtolower($url)));//返回小写的文件扩展名
}

热心网友 时间:2022-04-29 14:45

<?php
function get_extend($url){
    return end(explode(".",$url));
}
?>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 应当怎样才能挑选到满意的榴莲 AMBC是正规公司吗? ambc白皮书是真的吗 我家的联通华为光猫有4个LAN接口,为什么只有一个可以用? 你好,如何设置华为HG8245 LAN口为三层口 我们有四台计算机想通过交换机建立局域网络! 华为hg8541m说的是lan1是千兆的,登录到网址显示当前lan1速率是100m目前,怎么办? 华为新华三路由器有没有lan接口? 华为光纤猫的两个LAN口怎么用? 高分求教:海蜘蛛路由V8路由器,连接上一级路由器PING的通却不能上网 华为手机y600路由器lan在哪 移动送的华为hg8342m怎么开启自带的路由拨号功能,求大神帮忙目前telenet连接不上 华为8033C接口介绍 华为荣耀cd16怎么和华为TC 5200桥接? 开盘就跌停或涨停股票可以卖掉吗? 怎么用表格群发工资条到每个人的邮箱里? 开盘一字涨停的股票在开盘以后可以卖出吗? 股票集合竞价涨停时比如在9:16—9:20是涨停我9:16以底于涨停价挂单可以卖出去吗 假如股票涨停后,我想卖掉,按规定,可不可以卖? 工资条邮件怎么一对一的群发? 我想买个榴莲 但是怎么挑选?? 三国杀名将传开原石技巧 三国杀名将传战法开启条件 三国杀名将传神兽商店顺序 三国杀名将传怎么玩 三国杀名将传开局玩法攻略 三国杀名将传跨服资源怎么分配好 三国杀名将传宝物商店买什么好 三国杀名将传关羽开那个战法 三国杀名将传矿战怎么玩 三国杀名将传矿战 三国杀名将传元宝使用介绍 三国杀名将传元宝怎么用 三国杀名将传于吉开什么战法 三国杀名将传武将哪个好 武将培养推荐 三国杀名将传平民阵容怎么搭配 《三国杀名将传》哪个阵营最强 国家势力选择推荐 三国杀名将传第几天开矿? 三国杀名将传阵容2在哪 三国杀名将传哪个阵营比较好 《三国杀名将传》武将获取 详解怎么玩 青年大学习,怎么登录查看班级有没有学 四川省青年大学网登录入口