URLの組み立てサンプル(http_build_url())
http_build_url()の各結果
サンプル
echo http_build_url($url, $parts);
schemeの指定
var_dump($parts) | $urlの値 | echo http_build_url($url, $parts); |
---|
Array
(
[scheme] => ftp
)
| https://recatnap.info/ | → ftp://recatnap.info/ |
https://recatnap.info | → ftp://recatnap.info |
//recatnap.info | → ftp://recatnap.info |
//recatnap.info/ | → ftp://recatnap.info/ |
/ | → ftp://tips.recatnap.info/ |
/hoge | → ftp://tips.recatnap.info/hoge |
hoge | → ftp://tips.recatnap.info/hoge |
schemeとドメインの指定
var_dump($parts) | $urlの値 | echo http_build_url($url, $parts); |
---|
Array
(
[scheme] => http
[host] => example.com
)
| https://recatnap.info/ | → http://example.com/ |
https://recatnap.info | → http://example.com |
//recatnap.info | → http://example.com |
//recatnap.info/ | → http://example.com/ |
/ | → http://example.com/ |
/hoge | → http://example.com/hoge |
hoge | → http://example.com/hoge |
パスの指定(相対)
var_dump($parts) | $urlの値 | echo http_build_url($url, $parts); |
---|
Array
(
[path] => zebra
)
| https://recatnap.info/ | → https://recatnap.infozebra |
https://recatnap.info | → https://recatnap.infozebra |
//recatnap.info | → http://recatnap.infozebra |
//recatnap.info/ | → http://recatnap.infozebra |
/ | → http://tips.recatnap.infozebra |
/hoge | → http://tips.recatnap.infozebra |
hoge | → http://tips.recatnap.infozebra |
パスの指定(絶対)
var_dump($parts) | $urlの値 | echo http_build_url($url, $parts); |
---|
Array
(
[path] => /zebra
)
| https://recatnap.info/ | → https://recatnap.info/zebra |
https://recatnap.info | → https://recatnap.info/zebra |
//recatnap.info | → http://recatnap.info/zebra |
//recatnap.info/ | → http://recatnap.info/zebra |
/ | → http://tips.recatnap.info/zebra |
/hoge | → http://tips.recatnap.info/zebra |
hoge | → http://tips.recatnap.info/zebra |
絶対パスとgetパラメータの指定
var_dump($parts) | $urlの値 | echo http_build_url($url, $parts); |
---|
Array
(
[path] => /yakitori
[query] => kushi=zebra
)
| https://recatnap.info/ | → https://recatnap.info/yakitori?kushi=zebra |
https://recatnap.info | → https://recatnap.info/yakitori?kushi=zebra |
//recatnap.info | → http://recatnap.info/yakitori?kushi=zebra |
//recatnap.info/ | → http://recatnap.info/yakitori?kushi=zebra |
/ | → http://tips.recatnap.info/yakitori?kushi=zebra |
/hoge | → http://tips.recatnap.info/yakitori?kushi=zebra |
hoge | → http://tips.recatnap.info/yakitori?kushi=zebra |
basic認証のIDとパスワードの指定
var_dump($parts) | $urlの値 | echo http_build_url($url, $parts); |
---|
Array
(
[user] => hoge
[pass] => foo
)
| https://recatnap.info/ | → https://hoge:foo@recatnap.info/ |
https://recatnap.info | → https://hoge:foo@recatnap.info |
//recatnap.info | → http://hoge:foo@recatnap.info |
//recatnap.info/ | → http://hoge:foo@recatnap.info/ |
/ | → http://hoge:foo@tips.recatnap.info/ |
/hoge | → http://hoge:foo@tips.recatnap.info/hoge |
hoge | → http://hoge:foo@tips.recatnap.info/hoge |
flags
▼色々と設定ができるそうだ。
echo http_build_url($url, $parts, HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT);
▼内容
HTTP_URL_REPLACE | 最初の URL のすべての部分を、二番目の URL がある場合にそれで置き換えます。 |
HTTP_URL_JOIN_PATH | 相対パスを連結します。 |
HTTP_URL_JOIN_QUERY | クエリ文字列を連結します。 |
HTTP_URL_STRIP_USER | 認証ユーザに関する情報を取り除きます。 |
HTTP_URL_STRIP_PASS | 認証パスワードに関する情報を取り除きます。 |
HTTP_URL_STRIP_AUTH | すべての認証情報を取り除きます。 |
HTTP_URL_STRIP_PORT | 明示的なポート番号の指定を取り除きます。 |
HTTP_URL_STRIP_PATH | 完全パスを取り除きます。 |
HTTP_URL_STRIP_QUERY | クエリ文字列を取り除きます。 |
HTTP_URL_STRIP_FRAGMENT | フラグメント (# 以降) を取り除きます。 |
HTTP_URL_STRIP_ALL | スキームとホスト以外のすべての部分を取り除きます。 |
参考
・
PHP: http_build_url - Manual