PHP équivalent pour d'échappement javascript/ne pas encoder
Disons que j'ai une chaîne de caractères: quelque chose
Quand j'y échapper en JS j'obtiens ceci: %73%6F%6D%65%74%68%69%6E%67
si je peux utiliser ce code en JS pour le décoder:
document.write(unescape('%73%6F%6D%65%74%68%69%6E%67'));
J'ai besoin de l'échapper la fonction en PHP qui va faire la même chose (encoder quelque chose: %73%6F%6D%65%74%68%69%6E%67)
Comment faire ?
Échappement/encodage !== "chiffrement". Quel est le but?
urlencode ne fonctionne pas? php.net/manual/en/function.urlencode.php
ce que vous avez là ascii sont les valeurs hexadécimales. en php, vous pouvez utiliser
urlencode ne fonctionne pas? php.net/manual/en/function.urlencode.php
escape('something') != '%73%6F%6D%65%74%68%69%6E%67'
ce que vous avez là ascii sont les valeurs hexadécimales. en php, vous pouvez utiliser
chr()
/ord()
rawurlencode
est le escape
équivalentOriginalL'auteur chubbyk | 2013-03-20
Vous devez vous connecter pour publier un commentaire.
PHP:
JS:
Ne pas utiliser
escape
comme il est désapprouvée.OriginalL'auteur i--
OriginalL'auteur Roger Gajraj
Quelques précisions d'abord:
Que c'est faux. (Btw, la JS
escape()
fonction est obsolète. Vous devez utiliserencodeURIComponent()
à la place!)Yep, ce qui va écrire "quelque chose" du document (comme
escape()
, aussiunescape()
est obsolète; utilisationdecodeURIComponent()
à la place).À votre question:
Ce que vous cherchez est la représentation hexadécimale de charachters. Donc, pour obtenir la chaîne "%73%6F%6D%65%74%68%69%6E%67" de la chaîne "quelque chose", vous devez:
À l'envers:
dechex(ord())
==bin2hex
Mise à jour de réponse, merci @deceze
Également mettre à jour
hexToString()
fonction; beaucoup plus facile à utiliserpack()
sur la chaîne au lieu d'une itération sur les valeurs hexadécimales et l'utilisationchr(hexdec())
sur chaque.OriginalL'auteur eyecatchUp