《PHP實(shí)例:php解析url并得到url中的參數(shù)及獲取url參數(shù)的四種方式》要點(diǎn):
本文介紹了PHP實(shí)例:php解析url并得到url中的參數(shù)及獲取url參數(shù)的四種方式,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP學(xué)習(xí)下面一段代碼是php解析url并獲得url中的參數(shù),代碼如下所示:
PHP學(xué)習(xí)
<?php
$url = 'http://www.baidu.com/index.php?m=content&c=index&a=lists&catid=6&area=0&author=0&h=0®ion=0&s=1&page=1';
$arr = parse_url($url);
var_dump($arr);
$arr_query = convertUrlQuery($arr['query']);
var_dump($arr_query);
var_dump(getUrlQuery($arr_query));
/**
* 將字符串參數(shù)變?yōu)閿?shù)組
* @param $query
* @return array array (size=10)
'm' => string 'content' (length=7)
'c' => string 'index' (length=5)
'a' => string 'lists' (length=5)
'catid' => string '6' (length=1)
'area' => string '0' (length=1)
'author' => string '0' (length=1)
'h' => string '0' (length=1)
'region' => string '0' (length=1)
's' => string '1' (length=1)
'page' => string '1' (length=1)
*/
function convertUrlQuery($query)
{
$queryParts = explode('&', $query);
$params = array();
foreach ($queryParts as $param) {
$item = explode('=', $param);
$params[$item[0]] = $item[1];
}
return $params;
}
/**
* 將參數(shù)變?yōu)樽址?
* @param $array_query
* @return string string 'm=content&c=index&a=lists&catid=6&area=0&author=0&h=0®ion=0&s=1&page=1' (length=73)
*/
function getUrlQuery($array_query)
{
$tmp = array();
foreach($array_query as $k=>$param)
{
$tmp[] = $k.'='.$param;
}
$params = implode('&',$tmp);
return $params;
}
PHP學(xué)習(xí)下面通過四種實(shí)例給年夜家介紹php url 參數(shù)獲取方式.
PHP學(xué)習(xí)在已知URL參數(shù)的情況下,我們可以根據(jù)自身情況采納$_GET來獲取相應(yīng)的參數(shù)信息($_GET['name']);那,在未知情況下如何獲取到URL上的參數(shù)信息呢?
PHP學(xué)習(xí)第一種、應(yīng)用$_SERVER內(nèi)置數(shù)組變量
PHP學(xué)習(xí)相對較為原始的$_SERVER['QUERY_STRING']來獲取,URL的參數(shù),通常使用這個變量返回的會是類似這樣的數(shù)據(jù):name=tank&sex=1
如果需要包括文件名的話可以使用$_SERVER["REQUEST_URI"](返回類似:/index.php?name=tank&sex=1)
PHP學(xué)習(xí)第二種、應(yīng)用pathinfo內(nèi)置函數(shù)
PHP進(jìn)修?代碼如下:
PHP學(xué)習(xí)
<?php
$test = pathinfo("http://localhost/index.php");
print_r($test);
/*
PHP學(xué)習(xí)成果如下
PHP學(xué)習(xí)
Array
(
[dirname] => http://localhost //url的路徑
[basename] => index.php //完整文件名
[extension] => php //文件名后綴
[filename] => index //文件名
)
*/
?>
PHP學(xué)習(xí)第三種、應(yīng)用parse_url內(nèi)置函數(shù)
PHP進(jìn)修代碼如下:
PHP學(xué)習(xí)
<?php
$test = parse_url("http://localhost/index.php?name=tank&sex=1#top");
print_r($test);
/*
PHP學(xué)習(xí)成果如下
PHP學(xué)習(xí)
Array
(
[scheme] => http //使用什么協(xié)議
[host] => localhost //主機(jī)名
[path] => /index.php //路徑
[query] => name=tank&sex=1 // 所傳的參數(shù)
[fragment] => top //后面根的錨點(diǎn)
)
*/
?>
PHP學(xué)習(xí)第四種、應(yīng)用basename內(nèi)置函數(shù)
PHP進(jìn)修代碼如下:
PHP學(xué)習(xí)
<?php
$test = basename("http://localhost/index.php?name=tank&sex=1#top");
echo $test;
/*
PHP學(xué)習(xí)成果如下
PHP學(xué)習(xí)
index.php?name=tank&sex=1#top
*/
?>
PHP學(xué)習(xí)另外,還有就是本身通過正則匹配的處理方式來獲取需要的值了.這種方式較為精確,效率暫不考慮...
下面拓展實(shí)踐下正則處理方式:
PHP進(jìn)修代碼如下:
PHP學(xué)習(xí)
<?php
preg_match_all("/(\w+=\w+)(#\w+)?/i","http://localhost/index.php?name=tank&sex=1#top",$match);
print_r($match);
/*
PHP學(xué)習(xí)成果如下
PHP進(jìn)修
Array
(
[0] => Array
(
[0] => name=tank
[1] => sex=1#top
)
[1] => Array
(
[0] => name=tank
[1] => sex=1
)
[2] => Array
(
[0] =>
[1] => #top
)
)
*/
?>
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP實(shí)例:php解析url并得到url中的參數(shù)及獲取url參數(shù)的四種方式》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8534.html