Dans le développement PHP, il est parfois nécessaire de convertir des tableaux ou des objets en paramètres d'URL. Par exemple, lorsque nous utilisons cURL pour envoyer une requête HTTP, nous devons convertir les paramètres de la requête au format de paramètre URL. Apprenons comment convertir des objets tableau en paramètres URL en PHP.
Utilisez la fonction http_build_query pour convertir un tableau PHP en chaîne de paramètres d'URL. L'exemple de code est le suivant :
$params = array('name' => '张三', 'age' => 18); $queryString = http_build_query($params); echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89&age=18
Le premier paramètre de la fonction http_build_query est un tableau, le deuxième paramètre est le préfixe et le troisième paramètre est le délimiteur. S'il n'y a pas de préfixes ni de délimiteurs, ces deux paramètres n'ont pas besoin d'être transmis.
Pour les objets PHP, nous pouvons d'abord les convertir en tableaux, puis utiliser la fonction http_build_query pour les convertir en paramètres d'URL. L'exemple de code est le suivant :
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
Lorsque vous utilisez la fonction http_build_query pour convertir, vous devez faire particulièrement attention à savoir si les paramètres contiennent des caractères spéciaux. Par exemple, les caractères tels que les espaces, +, /, etc. doivent être échappés dans un format de codage spécifique dans les paramètres d'URL. L'exemple de code est le suivant :
$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
Dans l'exemple ci-dessus, le paramètre contient des espaces, que la fonction http_build_query échappe dans un signe plus (+). Si vous avez besoin de convertir au format d'encodage UTF-8, vous pouvez utiliser la fonction 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
Résumé :
Grâce aux exemples ci-dessus, nous avons appris comment convertir des objets tableau en paramètres d'URL en PHP. Plus précisément, nous pouvons utiliser la fonction http_build_query pour convertir un tableau PHP en chaîne de paramètres d'URL, ou nous pouvons d'abord convertir l'objet en tableau, puis utiliser cette fonction pour le convertir. Dans le même temps, lors du traitement des caractères spéciaux, vous devez déterminer si vous devez utiliser la fonction urlencode pour la conversion de codage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!