假设我有一个字符串:某事
当我在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 < / strong>)
怎么做?
答案 0 :(得分:10)
<强> PHP:强>
rawurlencode("your funky string");
<强> JS:强>
decodeURIComponent( '您的%20funky%20string');
不要使用escape
,因为它已被弃用。
答案 1 :(得分:5)
rawurldecode('%73%6F%6D%65%74%68%69%6E%67');
答案 2 :(得分:2)
首先澄清一下:
假设我有一个字符串:某事 当我在JS中逃脱时,我得到这个:%73%6F%6D%65%74%68%69%6E%67
这是错误的。 (顺便说一句,不推荐使用JS escape()
函数。您应该使用encodeURIComponent()
代替!)
所以我可以在JS中使用这段代码来解码它: 文件撰写(UNESCAPE( '%73%6F 6D%%65%74%68%69%6E%67'));
是的,这会将“something”写入文档(escape()
,同时unescape()
也已弃用;请改用decodeURIComponent()
。
问题:
我需要PHP中的[snip]函数[snip]编码某些东西到%73%6F%6D%65%74%68%69%6E%67
你要找的是charachters的十六进制表示。因此,要从字符串“something”中获取字符串“%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