parse_url — 解析 URL,返回其組成部分。
說明array
parse_url ( string
$url
)
本函數解析一個 URL 並返回一個關聯陣列,包含在 URL 中出現的各種組成部分。
本函數不是用來驗證給定 URL 的合法性的,只是將其分解為下面列出的部分。不完整的 URL 也被接受, parse_url() 會嘗試盡量正確地將其解析。
傳回值
對嚴重不合格的 URL, parse_url() 可能會返回 FALSE
並發出 E_WARNING
。否則會返回一個關聯陣列,其組成部分為(至少有一個):
- scheme - 如 http
- host
- port
- user
- pass
- path
- query - 在問號 ? 之後
- fragment - 在散列符號 # 之後
舉例子如下:
$url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/"; $parts = parse_url($url); 輸出: Array ( [scheme] => http [host] => www.electrictoolbox.com [path] => /php-extract-domain-from-full-url/ )
又如:
$url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); echo parse_url($url, PHP_URL_PATH); 輸出: Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor )
可以看到,可以很容易分解出一個URL的各個部,那如果要拿指定的部分出來的話也很容易,如
echo parse_url($url, PHP_URL_PATH);
就是在第二個參數中,設定如下的參數:
PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT.