欢迎光临
我们一直在努力

PHPurl地址获取GET参数数组

工作中我们可能 遇到这种情况,我们获取到一个url地址,想把它的get参数解析成GET一样的数组对象来使用。

第一步获取url中的get参数(一般第一个?问号开始),这里我们可以使用php提供的 parse_url函数来获取

<?php
$url = $_SERVER['REQUEST_URI'];//动态获取
$url = 'http://192.168.1.110/mb/demo/yc?to=1&cc=222#top=1';//固定地址
$ex = parse_url($url);
var_dump($ex);

可以看到结果:

array(5) {
["scheme"]=>
string(4) "http"
["host"]=>
string(13) "192.168.1.110"
["path"]=>
string(11) "/mb/demo/yc"
["query"]=>
string(11) "to=1&cc=222"
["fragment"]=>
string(5) "top=1"
}

那么,可以看到query参数就是我们想要的get参数了,接下来我们可以根据&与=分隔字符串得到我们的get数组对象

你也可以封装个函数,如:

<?php
function convertUrlQuery($query)
{
    $queryParts = explode('&', $query);
    $params = array();
    foreach ($queryParts as $param) {
        $item = explode('=', $param);
        $params[$item[0]] = $item[1];
    }
    return $params;
}

最后我们来个完整的结合案例:

<?php
$url = 'http://192.168.1.110/mb/demo/yc?to=1&cc=222#top=1';
$ex = parse_url($url);
$_GET = convertUrlQuery($ex['query']);
var_dump($_GET);

得到结果:

array(2) {
["to"]=>
string(1) "1"
["cc"]=>
string(3) "222"
}

是不是很简单,如果对你有帮助,就拿去封装使用吧,(#^.^#)

 

分享到:更多 ()