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

青灯夜游
发布: 2023-04-09 09:38:02
转载
8593 人浏览过

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

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 "
";
$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 "
";
$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 "
";
$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 "
";
$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 "
";
$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种方式介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:cnblogs.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!