• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php解析url几种方式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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
  1. 利用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',
)
  1. 利用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',
)
  1. 利用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
  1. 正则匹配
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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php中常用的处理字符串的函数发布时间:2022-07-10
下一篇:
PHP表单防止刷新提交的方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap