明白了HTTP請求的頭信息後,咱們還須要對請求地址有所瞭解。再者,HTTP GET請求是靠URL實現的,因此瞭解URL的構造,處理URL的重要性不言而喻。html
在PHP中咱們用parse_url()函數來處理URL信息。數組
其函數原型以下:併發
array parse_url ( string $url [,URL_COSTANT])函數
本函數解析一個 URL 並返回一個關聯數組,包含在 URL 中出現的各類組成部分。ui
對嚴重不合格的 URL,parse_url() 可能會返回 FALSE 併發出 E_WARNING。不然會返回一個關聯數組,其組成部分爲(至少有一個)url
其正確的返回值以下:spa
scheme http 協議信息 host 主機信息 port 端口號 user 用戶名 pass 密碼 path 站內路徑 query 在問號 ? 以後的查詢信息 fragment 在散列符號 # 以後 錨點信息 Hash信息
下面是一個典型的URL字符串,咱們對其用parse_url()解析,並輸出其結果數組。code
$url='https://zbs:mypass@www.baidu.com:8080/home/index.html?gender=male&write=code#anchor'; $arr=parse_url($url); array (size=8) 'scheme' => string 'https' 'host' => string 'www.baidu.com' 'port' => int 8080 'user' => string 'zbs' 'pass' => string 'mypass' 'path' => string '/home/index.html' 'query' => string 'gender=male&write=code' 'fragment' => string 'anchor'
另外,咱們還能夠對第二個參數賦值,指定要返回的URL部分,對應的URL_CONST取值以下:htm
scheme:PHP_URL_SCHEME, 對象
host:PHP_URL_HOST,
port:PHP_URL_PORT,
user:PHP_URL_USER,
pass:PHP_URL_PASS,
path:PHP_URL_PATH,
query:PHP_URL_QUERY,
fragment:PHP_URL_FRAGMENT.
例如咱們要指定返回地址的查詢字段信息:
$url='https://zbs:mypass@www.baidu.com:8080/home/index.html?gender=male&write=code#anchor'; $arr=parse_url($url,PHP_URL_QUERY);//string '/home/index.html
理解了如何拆分URL信息後,咱們也更須要學會拼合URL信息,拼合URL信息有一個專門的函數http_build_url(),但此函數因其處理繁瑣,通常較少使用,咱們經常使用字符串來拼合URL,在處理較多的查詢信息(query_string)時,咱們會用http_build_query()函數。
http_build_query()函數能幫咱們將一個關聯數組快速拼合成一個查詢字符串,它甚至能夠將一個對象分析拼合爲一個查詢字符串,但要注意,它只能保留修飾符爲"public"的"屬性",其他信息將會被捨棄。
例:
$info=['run'=>'10km','eat'=>'3kg']; var_dump(http_build_query($info));//string 'run=10km&eat=3kg' class Msg{ public $attr_public="value_public"; protected $attr_protected="value_protected"; private $attr_private="value_private"; function foo(){ echo "foo"; } } $msg=new Msg(); var_dump(http_build_query($msg));//string 'attr_public=value_public'
另:JS獲取當前url信息:
Location 對象是 Window 對象的一個部分,可經過 window.location 屬性來訪問,它包含了有關當前 URL 的信息。
Location 對象屬性
屬性 描述
hash URL錨點信息
host 主機名和當前 URL 的端口號
hostname 當前URL的主機名
href 完整的URL
pathname 當前URL的路徑部分
port 當前URL的端口號
protocol 當前URL的協議
search 查詢字符串