【问题标题】:PHP disable escaping in heredocPHP在heredoc中禁用转义
【发布时间】:2013-06-15 17:31:31
【问题描述】:

我有 PHP,它通过heredoc 提供缩小的 JS 作为输出。看这段代码:

function prerefresh(){$("#len").empty();predata.forEach(item)}

正如我上面加粗的那样,{$ 由于变量转义而扰乱了我的heredoc。

有没有办法禁用或修复这种转义?

【问题讨论】:

    标签: php javascript escaping heredoc


    【解决方案1】:

    我有 PHP,它通过输出将缩小的 JS 提供给

    那是你做错了。

    不要通过heredoc 做任何输出——这在PHP 中完全没有意义。只需关闭 PHP 标记并按原样编写任何 JS。

    ?>
    function prerefresh(){$("#len").empty();predata.forEach(item)}
    

    这是最自然的方式。

    【讨论】:

    • 有一些前缀可以避免冲突。只有 PHP 可以在 js 中进行这样的更改。
    • 为了关闭php标签,你是真的。当代码在引号内时需要额外的努力。
    【解决方案2】:

    如果您使用的是 PHP 5.3 +,则可以使用 nowdoc 它不会解析。

    【讨论】:

      【解决方案3】:

      实际上变量替换是您想要禁用的。它正在转义您正在寻找的东西:

      function prerefresh(){\$("#len").empty();predata.forEach(item)}
      

      【讨论】:

        【解决方案4】:

        使用\ 反斜杠转义$。导致\$

        【讨论】:

          猜你喜欢
          • 2011-07-16
          • 2017-11-21
          • 2019-11-21
          • 2015-01-28
          • 2018-10-02
          • 2018-01-07
          • 2016-08-24
          • 1970-01-01
          • 2018-02-24
          相关资源
          最近更新 更多