在PHP中解码javascript转义序列(\ x27,\ x22等...)

时间:2012-09-02 18:34:10

标签: php javascript decode

如果我有这个PHP字符串:

$string = '\\x27\\x22';

如何将其解码为'"

3 个答案:

答案 0 :(得分:4)

正则表达式可以帮到你:

$out = preg_replace_callback(
  "(\\\\x([0-9a-f]{2}))i",
  function($a) {return chr(hexdec($a[1]));},
  $string
);

答案 1 :(得分:0)

您无需解码它。只做str_replace('\\x27', "'", $str);。如果您的'"只是示例,请注意您有可重复的模式\\xAA,其中x表示十六进制表示法,AA是十六进制值本身,因此每个{{1}表示单字节,\\xAA表示0到0xFF。因此,您可以使用正则表达式或者只是在字符串上以任何其他方式行走,提取这些AA值并将其转换为AA以对应的characted并粘贴结果字符串。

答案 2 :(得分:0)

$out = preg_replace_callback(
  "(\\\\x([0-9a-f]{2}))i",
  function($a) {return '\u00'.bin2hex(hex2bin($a[1]));},
  $string
);

将值从ascii转换为unicode后,确定没问题。