程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中使用parse_url()對網址進行解析的實現代碼(parse_url詳解)

php中使用parse_url()對網址進行解析的實現代碼(parse_url詳解)

編輯:關於PHP編程

PHP 解析 URL函數: parse_url詳解
parse_url — 解析 URL,返回其組成部分

說明

array parse_url ( string $url )
本函數解析一個 URL 並返回一個關聯數組,包含在 URL 中出現的各種組成部分。
本函數不是用來驗證給定 URL 的合法性的,只是將其分解為下面列出的部分。不完整的 URL 也被接受,parse_url() 會嘗試盡量正確地將其解析。
參數
url
要解析的 URL
返回值
對嚴重不合格的 URL,parse_url() 可能會返回 FALSE 並發出 E_WARNING。否則會返回一個關聯數組,其組成部分為(至少有一個):
scheme – 如 http
host
port
user
pass
path
query – 在問號 ? 之後
fragment – 在散列符號 # 之後
范例
parse_url() 例子
復制代碼 代碼如下:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
?>

以上例程會輸出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

常常我們會傳送一大串網址,然後要解析的話,只能不斷地去切token來解析。但是在php中,一定要學會使用前人所寫過的函式,這樣開發速度才會快別人一截。當然,要解析網址的話,就得去找相關的指令,而今天要介紹的,就是php中的parse_url這個函式。

這個函式主要是用來解析網址,而首先先看一下這個函式原型,其官方描述如下:


mixed parse_url ( string $url [, int $component= -1 ] )

而php官方舉了一個例子,而我將他擴充如下,以方便講解。
復制代碼 代碼如下:
<?php
$url = 'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor';
print_r(parse_url($url));
?>

首先,先看一下這個程式的輸出結果
Array (
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg1=value1&arg2=value2
[fragment] => anchor
)
其中,scheme是指他走的路線,而host則是站台網址,user則是使用者名稱,pass則是密碼,path則是路徑,query則是參數,fragment則是錨點。

而在「$component」的部份,則是有以下的參數可供傳遞。

PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT
而這幾個參數則分別代表了Array中的scheme、host、user、pass、path、query和fragment。

同樣,舉例來說,如果使用PHP_URL_PATH和PHP_URL_QUERY來說,以下為他的示范。
復制代碼 代碼如下:
<?php
$url = 'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor'; echo nl2br(parse_url($url, PHP_URL_PATH)."\n");
echo nl2br(parse_url($url, PHP_URL_QUERY)."\n");
?>

而輸出結果將如下:
/path
arg1=value1&arg2=value2

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved