在PHP

时间:2017-07-03 17:00:38

标签: javascript php html

我从POST请求中收到一段javascript。这是(部分)作为例子

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

如果javascript代码在调用之间保持一致,我可以使用基本的php字符串操作来剥离javascript。那么我留下了javascript编码的字符串

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

我基本上想要做site反向解释的内容

  • 水平标签替换为\ t
  • 垂直标签替换为\ v
  • Nul char替换为\ 0
  • 退格键替换为\ b
  • 使用\ f
  • 替换换页符
  • 换行符替换为\ n
  • 回车符替换为\ r
  • 单引号替换为\&#39;
  • 双引号替换为\&#34;
  • 反斜杠替换为\

是否有PHP函数可以执行此操作?我不是特别想写一个解析器来做这件事。结果是

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

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

2 个答案:

答案 0 :(得分:0)

也许json_encode()会做你需要的。但是,它会附加并添加引号,因为它正在生成JSON字符串值。

答案 1 :(得分:0)

就我的目的而言,这已经足够了

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