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

作成日: 更新日:

http_build_query関数は、配列またはオブジェクトをURLエンコードされたクエリ文字列に変換する関数です。この関数は、ウェブアプリケーションにおいてHTTPリクエストのパラメータを構築する際に非常に役立ちます。例えば、ウェブフォームから送信されるデータをURLのクエリ部分に追加したり、外部のAPIへリクエストを送る際のパラメータとして利用したりする場合に活用されます。

具体的には、キーと値のペアを持つ配列(例: ['name' => '山田 太郎', 'id' => 123])を入力として与えると、name=%E5%B1%B1%E7%94%B0+%E5%A4%AA%E9%83%8E&id=123のような形式の文字列を生成します。この際、URLにとって特別な意味を持つ文字(スペースや日本語などの非ASCII文字、一部の記号など)は、自動的にURLエンコードされます。これにより、開発者が手動でエンコード処理を行う手間を省き、URLの形式が正しく保たれ、データが安全かつ確実に送信されることが保証されます。

多次元配列やオブジェクトも処理できるため、複雑なデータ構造も簡単にクエリ文字列に変換できます。生成される文字列は、通常、HTTP GETリクエストのURLに付加されるか、HTTP POSTリクエストのボディのapplication/x-www-form-urlencoded形式のデータとして使用されます。この関数は、ウェブ開発におけるデータの送受信の基盤となる重要な機能の一つです。

基本的な使い方

構文(syntax)

<?php
$data = ['param1' => 'value1', 'param2' => 'value 2'];
$query_string = http_build_query($data);
?>

引数(parameters)

array|object $data, string $numeric_prefix = '', ?string $arg_separator = null, int $encoding_type = PHP_QUERY_RFC1738

  • array|object $data: クエリ文字列に変換したい配列またはオブジェクト
  • string $numeric_prefix = '': 数値キーを持つ配列要素のキーの先頭に付加する文字列(デフォルトは空文字列)
  • ?string $arg_separator = null: 引数間の区切り文字として使用する文字列(デフォルトは &)
  • int $encoding_type = PHP_QUERY_RFC1738: エンコーディングの種類を指定する整数(PHP_QUERY_RFC1738 または PHP_QUERY_RFC3986)

戻り値(return)

string

URLクエリ文字列を生成します。指定された配列やオブジェクトをキーと値のペアに変換し、URLで利用できる形式の文字列として返します。

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