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.
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.
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
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!