<?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); //截取扩展名
}

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

679

被折叠的 条评论
为什么被折叠?



