ホームページ  >  記事  >  バックエンド開発  >  PHP配列オブジェクトをURLパラメータに変換する

PHP配列オブジェクトをURLパラメータに変換する

王林
王林オリジナル
2023-05-07 17:53:07533ブラウズ

PHP 開発では、配列またはオブジェクトを URL パラメーターに変換する必要がある場合があります。たとえば、cURL を使用して HTTP リクエストを送信する場合、リクエスト パラメータを URL パラメータ形式に変換する必要があります。 PHP で配列オブジェクトを URL パラメーターに変換する方法を学びましょう。

  1. PHP 配列から URL パラメーターへの変換

http_build_query 関数を使用して、PHP 配列を URL パラメーター文字列に変換します。コード例は次のとおりです。

$params = array('name' => '张三', 'age' => 18);
$queryString = http_build_query($params);
echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89&age=18

http_build_query 関数の最初のパラメータは配列、2 番目のパラメータはプレフィックス、3 番目のパラメータは区切り文字です。接頭辞と区切り文字がない場合、これら 2 つのパラメータを渡す必要はありません。

  1. PHP オブジェクトから URL パラメータへの変換

PHP オブジェクトの場合、まず配列に変換し、次に http_build_query 関数を使用して URL パラメータに変換します。コード例は次のとおりです。

class User {
  public $name;
  public $age;
  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }
}
$user = new User('张三', 18);
$params = (array)$user; // 将对象转换成数组
$queryString = http_build_query($params);
echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89&age=18
  1. 特殊文字の処理

http_build_query 関数を使用して変換する場合は、パラメーターに特殊文字が含まれているかどうかに特別な注意を払う必要があります。 。たとえば、スペース、/ などの文字は、URL パラメーター内の特定のエンコード形式にエスケープする必要があります。コード例は次のとおりです。

$params = array('name' => '张三 王五', 'age' => 18);
$queryString = http_build_query($params);
echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89+%E7%8E%8B%E4%BA%94&age=18

上の例では、パラメーターにスペースが含まれており、http_build_query 関数はそれらをプラス記号 ( ) にエスケープします。 UTF-8 エンコード形式に変換する必要がある場合は、urlencode 関数を使用できます:

$params = array('name' => '张三 王五', 'age' => 18);
$queryString = http_build_query($params);
$queryString = str_replace('+', '%20', $queryString); // 将加号替换成UTF-8编码格式的空格
echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89%20%E7%8E%8B%E4%BA%94&age=18

概要:

上記の例を通じて、配列オブジェクトを URL パラメーターに変換する方法を学習しました。 PHPで。具体的には、http_build_query 関数を使用して PHP 配列を URL パラメータ文字列に変換することも、最初にオブジェクトを配列に変換してから、この関数を使用してそれを変換することもできます。同時に、特殊文字を処理する場合は、エンコード変換に urlencode 関数を使用する必要があるかどうかを検討する必要があります。

以上がPHP配列オブジェクトをURLパラメータに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。