2017-07-03 52 views
0

我正在从POST请求接收javascript代码段。下面是(部分)为例在PHP中转义JavaScript编码的字符串

iCart.updateBlock($$('div.cart', 'div.layout-1column'), "<div class=\"cart\">\n\n <div class=\"page-title title-buttons\">\n  <h1>Basket<\/h1>\n 

我可以使用基本的PHP字符串操作如果JavaScript代码是电话之间是一致的可能剥离的JavaScript。所以后来我留下的JavaScript编码字符串

<div class=\"cart\">\n\n <div class=\"page-title title-buttons\">\n  <h1>Basket<\/h1>\n 

我基本上想要做什么这site解释反向

  • 水平制表替换\ t
  • 垂直选项卡被替换\ v
  • 讷炭被替换\ 0
  • Backspace键被替换\ b
  • 换替换\˚F
  • 换行符替换\ n
  • 回车替换\ r
  • 单引号替换为\”
  • 双引号替换为\”
  • 反斜杠被替换为\

是否有一个PHP函数可以做到这一点?我不是特别想写一个解析器来做到这一点。结果是

<div class="cart"><div class="page-title title-buttons"><h1>Basket<\/h1> 

我只能提供一个返回的JavaScript小片段。当完整字符串在链接的站点上运行时,未转义的HTML是完整且有效的。

回答

0

也许json_encode()会做你所需要的。但是,它会在制作JSON字符串值时追加并加上引号。

0

对于我而言,这是不够好

$html = strtr($html, [ 
    "\t" => '', 
    "\v" => '', 
    "\n" => '', 
    "\\\\" => "\\", 
    "\\\"" => "\"", 
    "\'" => "'", 
    "\r" => '', 
    "\b" => '', 
    "\f" => '', 
    "\/" => '/', 
]);