Heim  >  Artikel  >  Backend-Entwicklung  >  Konvertieren Sie PHP-Array-Objekte in URL-Parameter

Konvertieren Sie PHP-Array-Objekte in URL-Parameter

王林
王林Original
2023-05-07 17:53:07570Durchsuche

Bei der PHP-Entwicklung ist es manchmal notwendig, Arrays oder Objekte in URL-Parameter umzuwandeln. Wenn wir beispielsweise cURL zum Senden einer HTTP-Anfrage verwenden, müssen wir die Anforderungsparameter in das URL-Parameterformat konvertieren. Erfahren Sie, wie Sie Array-Objekte in PHP in URL-Parameter konvertieren.

  1. PHP-Array zu URL-Parametern

Verwenden Sie die Funktion http_build_query, um ein PHP-Array in eine URL-Parameterzeichenfolge umzuwandeln. Das Codebeispiel lautet wie folgt:

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

Der erste Parameter der Funktion http_build_query ist ein Array, der zweite Parameter ist das Präfix und der dritte Parameter ist das Trennzeichen. Wenn keine Präfixe und Trennzeichen vorhanden sind, müssen diese beiden Parameter nicht übergeben werden.

  1. PHP-Objekt in URL-Parameter

Für PHP-Objekte können wir sie zunächst in Arrays konvertieren und sie dann mit der Funktion http_build_query in URL-Parameter konvertieren. Das Codebeispiel lautet wie folgt:

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. Umgang mit Sonderzeichen

Wenn Sie die Funktion http_build_query zum Konvertieren verwenden, müssen Sie besonders darauf achten, ob die Parameter Sonderzeichen enthalten. Beispielsweise müssen Zeichen wie Leerzeichen, +, / usw. in URL-Parametern in ein bestimmtes Codierungsformat maskiert werden. Das Codebeispiel lautet wie folgt:

$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

Im obigen Beispiel enthält der Parameter Leerzeichen, die die Funktion http_build_query in ein Pluszeichen (+) umwandelt. Wenn Sie in das UTF-8-Kodierungsformat konvertieren müssen, können Sie die URL-Code-Funktion verwenden:

$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

Zusammenfassung:

Durch die obigen Beispiele haben wir gelernt, wie man Array-Objekte in PHP in URL-Parameter konvertiert. Konkret können wir die Funktion http_build_query verwenden, um ein PHP-Array in eine URL-Parameterzeichenfolge umzuwandeln, oder wir können das Objekt zuerst in ein Array umwandeln und es dann mit dieser Funktion umwandeln. Gleichzeitig müssen Sie bei der Verarbeitung von Sonderzeichen berücksichtigen, ob Sie die URL-Code-Funktion für die Codierungskonvertierung verwenden müssen.

Das obige ist der detaillierte Inhalt vonKonvertieren Sie PHP-Array-Objekte in URL-Parameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn