Encodage d'URL en PHP

Shraddha Paghdar 22 janvier 2022
  1. Utilisez urlencode() pour encoder l’URL en PHP
  2. Utilisez rawurlencode() pour encoder l’URL en PHP
Encodage d'URL en PHP

Les URL peuvent avoir des paramètres de chemin et de requête comme le nom complet de quelqu’un, une autre URL de redirection ou un mot de passe. Ceux-ci peuvent contenir des caractères spéciaux en dehors du jeu ASCII, comme des espaces ou des caractères comme $ & : /.

Par conséquent, l’URL doit être régénérée dans un format ASCII légitime avant d’être transmise sur Internet ; sinon, ils peuvent interférer avec le protocole HTTP.

Dans l’article d’aujourd’hui, nous allons apprendre à encoder des URL en PHP.

PHP fournit 2 fonctions pour encoder l’URL.

Utilisez urlencode() pour encoder l’URL en PHP

C’est une fonction intégrée fournie par PHP qui est utilisée pour coder l’URL. Cette fonction remplace les caractères ASCII dangereux par un % suivi de 2 chiffres hexadécimaux. Cette fonction encode selon application/x-www-form-urlencoded. Une URL ne peut pas contenir d’espaces, cette fonction remplacera donc l’espace par un signe plus +. Les caractères spéciaux sont régénérés dans un format extrêmement spécifique basé sur des règles prédéfinies.

Syntaxe pour urlencode()

urlencode(string $input);

Paramètres

$input : il s’agit d’un paramètre obligatoire, qui ne prend que l’URL d’entrée de chaîne sur laquelle l’encodage est effectué.

Valeur de retour

Il renvoie une chaîne qui contient tous les caractères non alphanumériques à l’exception de -_., qui sont remplacés par le signe % et suivis de 2 chiffres hexadécimaux.

Exemple de code :

<?php
    echo urlencode("https://www.google.co.in/") . "\n";
    echo urlencode("https://www.google.com/") . "\n";
?>

Production :

https%3A%2F%2Fwww.google.co.in%2F
https%3A%2F%2Fwww.google.com%2F

Utilisez rawurlencode() pour encoder l’URL en PHP

Il s’agit d’une fonction intégrée fournie par PHP qui peut encoder une chaîne URL donnée (Uniform Resource Locator) selon la RFC 3986. Elle encode selon le simple Percent-Encoding. Il est utilisé pour empêcher les caractères littéraux d’être interprétés comme des délimiteurs d’URL spéciaux et pour empêcher les URL d’être mutilées par les supports de transmission avec des conversions de caractères (comme certains systèmes de messagerie).

Les symboles ou le caractère espace seront remplacés par un signe de pourcentage (%) suivi de 2 chiffres hexadécimaux.

Syntaxe pour rawurlencode()

rawurlencode(string $input);

Paramètres

$input : c’est un paramètre obligatoire qui ne prend que l’URL d’entrée de chaîne sur laquelle l’encodage est effectué.

Valeur de retour

Il renvoie une chaîne encodée qui contient tous les caractères non alphanumériques à l’exception des symboles -_.~.

Exemple de code :

<?php
   echo '<a href="http://testdomain.com/', rawurlencode('subscribers and admins/India'), '">';
?>

Production :

<a href="http://testdomain.com/subscribers%20and%20admins%2FIndia">

La seule distinction entre les fonctions urlencode() et rawurlencode() est qu’elles encodent d’abord l’espace comme + puis encodent ensuite comme %20. De plus, ~ est encodé en urlencode() mais pas en rawurlencode(). Si vous souhaitez encoder un composant de requête, utilisez urlencode() et si vous souhaitez encoder un segment de chemin, utilisez rawurlencode().

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn