Encodage/décodage d'URL PHP
P粉512363233
P粉512363233 2023-08-14 13:16:12
0
2
583
<p>J'ai utilisé la solution acceptée dans cette question pour crypter l'identifiant, par exemple dans <strong>/index.php?id=3</strong>. Le problème est que je ne peux pas envoyer la valeur cryptée sous forme d'URL telle que <strong>/index.php?id=dsf13f3343f23/23=</strong>. Parce que parfois il y a des caractères étranges dans l'URL, par exemple, faites attention au symbole <code>=</code>
P粉512363233
P粉512363233

répondre à tous(2)
P粉214176639

Utilisez la fonction urlencode() de PHP pour encoder la valeur avant de la mettre dans l'URL.

Cette fonction convertit les caractères « bizarres », tels que =, dans un format pouvant être inséré en toute sécurité dans une URL. Vous pouvez l'utiliser comme ceci :

Header('Location: /index.php?id=' . urlencode($id))
P粉346326040

Les caractères étranges dans les valeurs transmises dans les URL doivent être échappés en utilisant urlencode().

Par exemple, l'extrait de code suivant :

echo urlencode('dsf13f3343f23/23=');
donnera :

dsf13f3343f23%2F23%3D
En tant que paramètre d'URL, ceci est valide.

Si vous souhaitez créer une chaîne de requête avec plusieurs paramètres, consultez la fonction
http_build_query().

Par exemple :

echo http_build_query(array(
    'id' => 'dsf13f3343f23/23=',
    'a' => 'plop',
    'b' => '$^@test', 
));
donnera :

id=dsf13f3343f23%2F23%3D&a=plop&b=%24%5E%40test
Cette fonction gérera automatiquement l'échappement et l'épissage des paramètres ;-)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal