在PHP的開發(fā)中我們經(jīng)常會通過網(wǎng)址URL向另一個網(wǎng)頁傳遞參數(shù)的問題。在這個過程中我們首先需要獲取到當(dāng)前頁面的URL,然后將URL中各個參數(shù)的值保存到變量中。整個過程較為簡單,主要涉及到$_SERVER的用法。
公司主營業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出華容免費做網(wǎng)站回饋大家。
1、$_server['http_host'],作用:獲取網(wǎng)址域名,如(,這是波波的一個博客,暫且做例子吧)。
2、$_SERVER["PHP_SELF"],作用:獲取網(wǎng)頁地址,如(/code/445.html)。
3、$_SERVER["QUERY_STRING"],作用:獲取網(wǎng)址URL參數(shù),待會我們會在實例中用到。
4、$_SERVER["HTTP_REFERER"],作用:獲取用戶的代理。
通過上述說明我們基本上已經(jīng)了解了$_server的常用方法,下面我們首先通過PHP代碼獲取當(dāng)前網(wǎng)頁網(wǎng)址中傳遞的參數(shù)。對參數(shù)進行解析并輸出到屏幕上。請看源代碼:
?php
$para= urldecode($_SERVER["QUERY_STRING"]);//避免網(wǎng)址參數(shù)中文亂碼
//舉例 url=";b=bbbbc=cccc"
//$para = 'a=aaaab=bbbbc=cccc';
$cont = get_data($para);
echo $cont['a']; //屏幕打印aaaa
function get_data($str){
$data = array();
$parameter = explode('',end(explode('?',$str)));
foreach($parameter as $val){
$tmp = explode('=',$val);
$data[$tmp[0]] = $tmp[1];
}
return $data;
}
?
parse_url函數(shù)
我們先來了解一下parse_url函數(shù),官方解決
說明
mixed
parse_url
(
string
$url
[,
int
$component
=
-1
]
)
本函數(shù)解析一個
URL
并返回一個關(guān)聯(lián)數(shù)組,包含在
URL
中出現(xiàn)的各種組成部分。
本函數(shù)不是用來驗證給定
URL
的合法性的,只是將其分解為下面列出的部分。不完整的
URL
也被接受,
parse_url()
會嘗試盡量正確地將其解析。
要解析的
URL。無效字符將使用
_
來替換。
實例
代碼如下
$url
=
"";
$parts
=
parse_url($url);
print_r($parts);
array
(
[scheme]
=
http
[host]
=
[path]
=
/welcome/
)
也可以自己去寫一個算法!如下
代碼如下
function
getParams()
{
$url
=
'/index.php?_p=index_a=showx=12y=23';
$refer_url
=
parse_url($url);
$params
=
$refer_url['query'];
$arr
=
array();
if(!empty($params))
{
$paramsArr
=
explode('',$params);
foreach($paramsArr
as
$k=$v)
{
$a
=
explode('=',$v);
$arr[$a[0]]
=
$a[1];
}
}
return
$arr;
}
調(diào)用方法
代碼如下
$arr
=
getParams();
print_r($arr);
結(jié)果
結(jié)果:
Array
(
[_p]
=
index
[_a]
=
show
[x]
=
12
[y]
=
23
)
//url中傳遞的參數(shù),get形式
$userid?=?@$_GET['userid'];
//你也可以打印出所有的Get參數(shù),?可以更明白其中的奧妙
print_r($_GET);
//如果是表單/post提交,則用$_POST?,?用法和$_GET類似
1、在當(dāng)前網(wǎng)頁echo出變量$_SERVER['HTTP_HOST']即可獲取域名或主機地址。
2、在當(dāng)前網(wǎng)頁echo出變量$_SERVER['PHP_SELF']即可獲取網(wǎng)頁地址。
3、在當(dāng)前網(wǎng)頁echo出變量$_SERVER["QUERY_STRING"]即可獲取網(wǎng)址參數(shù)。
4、在當(dāng)前網(wǎng)頁echo出變量$_SERVER['HTTP_REFERER']即可獲取用戶代理。
5、在當(dāng)前網(wǎng)頁echo出變量$_SERVER['HTTP_HOST']點上$_SERVER['REQUEST_URI']即可獲取完整的url,后面帶參數(shù)自己點上即可。
6、也是點上,用個變量保存好輸出。
php有系統(tǒng)自帶的函數(shù)是可以直接獲取到當(dāng)前url的,下面小編就過來簡單的分享一下吧,希望能幫到大家的忙;
操作方法
代碼:
?php
//php獲取當(dāng)前url方法
$url = "http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
echo $url;
?
運行結(jié)果