如果我們有一段網址,像是:http://username:password@hostname:9090/path?arg=value#anchor 這樣的網址,想要去分析它的內容我們可以使用 php 提供的 parse_url 來幫我們處理。
解析之後可以分為這些部分:
- scheme - e.g. http
- host - 網域
- port - 埠
- user
- pass
- path - 路徑
- query - ? 後帶的參數
- fragment - # 後的值
所以像剛剛那段網址我們經由解析後會變這樣:
$url = 'http://username:password@hostname:9090/path?arg=value#anchor'; var_dump(parse_url($url)); var_dump(parse_url($url, PHP_URL_SCHEME)); var_dump(parse_url($url, PHP_URL_USER)); var_dump(parse_url($url, PHP_URL_PASS)); var_dump(parse_url($url, PHP_URL_HOST)); var_dump(parse_url($url, PHP_URL_PORT)); var_dump(parse_url($url, PHP_URL_PATH)); var_dump(parse_url($url, PHP_URL_QUERY)); var_dump(parse_url($url, PHP_URL_FRAGMENT));
array(8) {
["scheme"]=>
string(4) "http"
["host"]=>
string(8) "hostname"
["port"]=>
int(9090)
["user"]=>
string(8) "username"
["pass"]=>
string(8) "password"
["path"]=>
string(5) "/path"
["query"]=>
string(9) "arg=value"
["fragment"]=>
string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"
這樣我們就可以依據拆解出來的內容來處理網址了。