こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 PHPで指定された文字列からURLの構成要素を返すparse_url関数について
- parse_url関数とは
- parse_url関数を使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
XAMPPのバージョン | 8.0.3 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
parse_url関数とは
parse_url関数とは、引数に指定された文字列をURLとし、URLの構成要素ごとに分解して返す関数です。
引数は以下のように指定します。
第一引数(必須) | 文字列 |
---|---|
第二引数(任意) | 取得したいURLの構成要素 |
第一引数に指定する文字列は、基本URLとしてできる限り解析し結果を返します。
ただし、デタラメなURLだった場合falseを返します。
parse_url関数は
- 第一引数のみ指定した場合
- 第二引数も指定した場合
と返すものが異なります。
それぞれを詳しく解説します。
第一引数のみ指定した場合
第一引数のみ指定した場合は、URLの構成を要素とした連想配列が返されます。
使い方サンプルは下記になります。
1 2 |
$sample = 'https://www.google.com/'; $result = parse_url($sample); |
上記の例だと、resultには以下の内容の連想配列が返されます。
1 2 3 4 5 6 |
Array ( [scheme] => https [host] => www.google.com [path] => / ) |
連想配列に含まれる可能性のある要素は以下になります。
キー | 意味 |
---|---|
scheme | スキーマ |
host | ホスト |
port | ポート番号 |
user | ユーザー名 |
pass | パスワード |
path | パス |
query | クエリ |
fragment | フラグメント |
第二引数も指定した場合
第二引数も指定した場合は、第二引数で指定した構成要素の文字列が返されます。
第二引数に指定できるものと意味は以下になります。
指定できる要素 | 意味 |
---|---|
PHP_URL_SCHEME | スキーマ |
PHP_URL_HOST | ホスト |
PHP_URL_PORT | ポート番号 |
PHP_URL_USER | ユーザー名 |
PHP_URL_PASS | パスワード |
PHP_URL_PATH | パス |
PHP_URL_QUERY | クエリ |
PHP_URL_FRAGMENT | フラグメント |
使い方サンプルは下記になります。
1 2 |
$sample = 'https://www.google.com/'; $result = parse_url($sample, PHP_URL_SCHEME); |
上記の例だと、resultには「https」という文字列が返されます。
では、次の章で実際に使ってみます。
parse_url関数を解説するプログラムの概要
parse_url関数を解説するプログラムでは、
- デタラメなURLを指定した場合
- 第一引数のみ指定した場合
- 第二引数も指定した場合
と3パターンでparse_url関数を使います。
返された値がどうなっているのかを表示させ確認します。
phpプログラムは
C:\xampp\htdocs
配下に、【parse_url_sample.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?php print('■false確認<br >'); $bad_url = 'https://:8080.www.example'; print('デタラメなURL:'.$bad_url.'<br >'); $bad_result = parse_url($bad_url); print('結果:'); var_export($bad_result); print('<br ><br >'); $google_url = 'https://user:pass@www.example.com:8080/search?q=php#web'; print('確認するURL:'.$google_url.'<br ><br >'); $result_parse = parse_url($google_url); print('■第一引数のみ指定した場合'); print_r('<pre>'); print_r($result_parse); print_r('</pre>'); print('■第二引数も指定した場合<br >'); $result_scheme = parse_url($google_url, PHP_URL_SCHEME); print('PHP_URL_SCHEME:'.$result_scheme.'<br >'); $result_host = parse_url($google_url, PHP_URL_HOST); print('PHP_URL_HOST:'.$result_host.'<br >'); $result_port = parse_url($google_url, PHP_URL_PORT); print('PHP_URL_PORT:'.$result_port.'<br >'); $result_user = parse_url($google_url, PHP_URL_USER); print('PHP_URL_USER:'.$result_user.'<br >'); $result_pass = parse_url($google_url, PHP_URL_PASS); print('PHP_URL_PASS:'.$result_pass.'<br >'); $result_path = parse_url($google_url, PHP_URL_PATH); print('PHP_URL_PATH:'.$result_path.'<br >'); $result_query = parse_url($google_url, PHP_URL_QUERY); print('PHP_URL_QUERY:'.$result_query.'<br >'); $result_fragment = parse_url($google_url, PHP_URL_FRAGMENT); print('PHP_URL_FRAGMENT:'.$result_fragment.'<br >'); ?> |
実行結果
XAMPPを起動して、【http://localhost/parse_url_sample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
指定した引数の数通りにURLの構成要素が返されていることを確認できました!
まとめ:parse_url関数を使ってみよう!
以上がparse_url関数についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント