比方说,我有一个字符串: 东西
当我在JS逃避它,我得到这个:%73%6F%6D%65%74%68%69%6E 67%
这样我就可以使用此代码在JS对其进行解码:
document.write(unescape('%73%6F%6D%65%74%68%69%6E%67'));
我需要在PHP中逃生功能,也将这样做(将编码的东西 :%73%6F%6D%65%74%68%69%6E%67)
怎么做 ?
比方说,我有一个字符串: 东西
当我在JS逃避它,我得到这个:%73%6F%6D%65%74%68%69%6E 67%
这样我就可以使用此代码在JS对其进行解码:
document.write(unescape('%73%6F%6D%65%74%68%69%6E%67'));
我需要在PHP中逃生功能,也将这样做(将编码的东西 :%73%6F%6D%65%74%68%69%6E%67)
怎么做 ?
PHP:
rawurlencode("your funky string");
JS:
decodeURIComponent( '您%20funky%20string');
不要使用escape
,因为它已被弃用。
rawurldecode('%73%6F%6D%65%74%68%69%6E%67');
一些澄清第一:
比方说,我有一个字符串:东西
当我在JS逃避它,我得到这个:%73%6F%6D%65%74%68%69%6E 67%
这是错误的 。 (顺便说一句,在JS escape()
函数已被弃用。您应该使用encodeURIComponent()
代替!)
所以可以使用这个代码在JS进行解码:文件撰写(UNESCAPE( '%73%6F 6D%%65%74%68%69%6E%67'));
是的,这个会写“东西”的文件(如escape()
也unescape()
已不再被使用decodeURIComponent()
代替)。
你的问题:
我需要在PHP [剪断]函数[剪断]编码东西 %73%6F 6D%%65%74%68%69%6E%67
您要查找的是charachters的十六进制表示。 因此,要获得字符串“%73%6F%6D%65%74%68%69%6E 67%”从字符串“东西”,你将需要:
<?php
function stringToHex($string) {
$hexString = '';
for ($i=0; $i < strlen($string); $i++) {
$hexString .= '%' . bin2hex($string[$i]);
}
return $hexString;
}
$hexString = stringToHex('something');
echo strtoupper($hexString); // %73%6F%6D%65%74%68%69%6E%67
向后:
function hexToString($hexString) {
return pack("H*" , str_replace('%', '', $hexString));
}
$string = hexToString('%73%6F%6D%65%74%68%69%6E%67');
echo $string; // something