【PHP8.x】parse_url関数の使い方

作成日: 更新日:

parse_url関数は、URL(Uniform Resource Locator)を構成要素に分解する関数です。この関数は、WebサイトのアドレスであるURLを解析し、その中に含まれる様々な部品を個別に識別することができます。具体的には、HTTPやHTTPSといった「スキーム」、Webサーバーの「ホスト名」、アクセス先の「ポート番号」、場合によっては「ユーザー名」や「パスワード」、Webページの場所を示す「パス」、検索条件などが含まれる「クエリ文字列」、ページ内の特定の位置を示す「フラグメント」といった要素に分解します。

解析に成功した場合、parse_url関数はこれらの要素をキーとする連想配列を返します。例えば、'scheme'や'host'、'path'などのキーでそれぞれの値にアクセスできます。ただし、URLに含まれていない要素は、返される配列には含まれません。

もし、指定されたURL文字列の形式が正しくない場合や、解析が何らかの理由で失敗した場合は、この関数はブール値のfalseを返します。このため、関数の戻り値をチェックすることで、URLの有効性を判断することも可能です。

Webアプリケーション開発において、ユーザーからの入力URLを検証したり、特定のドメイン部分だけを抽出して処理を行ったり、URLの各要素に基づいて異なる動作をさせたい場合などに、このparse_url関数は非常に有用なツールとなります。オプションの引数を使用することで、スキームのみなど、特定の要素だけを直接取得することもできます。

基本的な使い方

構文(syntax)

parse_url(string $url, int $component = PHP_URL_ALL): array|string|int|false

引数(parameters)

string $url, int $component = -1

  • string $url: 解析するURLを指定する文字列
  • int $component = -1: 解析するURLのどの部分を取得するかを指定する整数。省略時 (-1) は全ての要素を配列で返します。PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY, PHP_URL_FRAGMENT などの定数で指定できます。

戻り値(return)

array|string|int|false

URL文字列を解析し、その構成要素を配列、または指定された定数に応じた個別の値として返します。解析に失敗した場合はfalseを返します。

【PHP8.x】parse_url関数の使い方 | いっしー@Webエンジニア