Maison >développement back-end >tutoriel php >Comment encoder correctement les chaînes pour les URL en PHP ?

Comment encoder correctement les chaînes pour les URL en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-28 21:47:09351parcourir

How to Properly Encode Strings for URLs in PHP?

Encodage de chaînes pour les URL en PHP

Encodage de la valeur de requête

Lors de la construction d'une URL avec des paramètres de requête, tels que "search.php?query= votre requête", il est crucial d'encoder correctement la valeur de la requête. A cet effet, les fonctions recommandées sont :

  • urlencode() : Encode la valeur de la requête selon la norme "application/x-www-form-urlencoded", en convertissant les espaces à " ".
  • urldecode() : décode une valeur de requête qui a été codée à l'aide de urlencode().

Encodage du chemin URI

Pour encoder les chemins URI ou d'autres parties d'une URL qui ne sont pas des paramètres de requête, différentes fonctions sont appropriées :

  • rawurlencode() : Encode la chaîne en utilisant la norme Percent-Encoding, en convertissant les espaces en " ".
  • rawurldecode() : Décode une chaîne qui a été codée à l'aide de rawurlencode().

Construction de chaînes de requête

Pour générer une chaîne de requête complète, la fonction http_build_query() est recommandée. Il prend un tableau de paires clé-valeur et renvoie une chaîne de requête correctement codée.

Différence entre urlencode() et rawurlencode()

Alors que urlencode() et rawurlencode() effectuent tous deux le codage d'URL , ils diffèrent dans la façon dont ils traitent certains caractères :

  • urlencode() code les espaces comme " " selon le "application/x-www-form-urlencoded".
  • rawurlencode() encode les espaces comme " " selon la norme Percent-Encoding.

Comprendre cette distinction est essentiel pour encoder correctement les chaînes dans différents contextes au sein d'une URL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn