php如何解析url?解析url的5种方式介绍

互联网 20-7-18

php解析url的几种方式

1、利用$_SERVER内置数组变量

访问:http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1

//URL的参数 echo $_SERVER['QUERY_STRING']; 返回: m=admin&c=index&a=lists&catid=1&page=1 //包含文件名 echo $_SERVER["REQUEST_URI"];
/test.php?m=admin&c=index&a=lists&catid=1&page=1

2、利用pathinfo内置函数

echo "<pre>"; $url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top'; var_export(pathinfo($url));

返回:

array (   'dirname' => 'http://localhost',   'basename' => 'test.php?m=admin&c=index&a=lists&catid=1&page=1#top',   'extension' => 'php?m=admin&c=index&a=lists&catid=1&page=1#top',   'filename' => 'test', )

3、利用parse_url内置函数

echo "<pre>"; $url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top'; var_export(parse_url($url));

返回:

array (   'scheme' => 'http',   'host' => 'localhost',   'path' => '/test.php',   'query' => 'm=admin&c=index&a=lists&catid=1&page=1',   'fragment' => 'top', )

4、利用basename内置函数

echo "<pre>"; $url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top'; var_export(basename($url));

返回:

test.php?m=admin&c=index&a=lists&catid=1&page=1#top

5、正则匹配

echo "<pre>"; $url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top'; preg_match_all("/(\w+=\w+)(#\w+)?/i",$url,$match); var_export($match);

返回:

array (   0 =>    array (     0 => 'm=admin',     1 => 'c=index',     2 => 'a=lists',     3 => 'catid=1',     4 => 'page=1#top',   ),   1 =>    array (     0 => 'm=admin',     1 => 'c=index',     2 => 'a=lists',     3 => 'catid=1',     4 => 'page=1',   ),   2 =>    array (     0 => '',     1 => '',     2 => '',     3 => '',     4 => '#top',   ), )

url常用处理方法

/**  * 将字符串参数变为数组  * @param $query  * @return array  */ function convertUrlQuery($query) {     $queryParts = explode('&', $query);     $params = array();     foreach ($queryParts as $param) {         $item = explode('=', $param);         $params[$item[0]] = $item[1];     }     return $params; }  /**  * 将参数变为字符串  * @param $array_query  * @return string  */ function getUrlQuery($array_query) {     $tmp = array();     foreach ($array_query as $k => $param) {         $tmp[] = $k . '=' . $param;     }     $params = implode('&', $tmp);     return $params; }
echo "<pre>"; $url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top'; $arr = parse_url($url); $arr_query = convertUrlQuery($arr['query']); var_export($arr_query);
array (   'm' => 'admin',   'c' => 'index',   'a' => 'lists',   'catid' => '1',   'page' => '1', )
var_export(getUrlQuery($arr_query));
m=admin&c=index&a=lists&catid=1&page=1

相关教程推荐:《PHP教程》

以上就是php如何解析url?解析url的5种方式介绍的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 解析url
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:PHP如何解压缩zip文件?(代码示例)

相关资讯