【问题标题】:How can I see if 2 pieces of code are equivalent in JavaScript / PHP?如何查看 2 段代码在 JavaScript / PHP 中是否等效?
【发布时间】:2011-05-27 13:14:12
【问题描述】:

我正在进行一些 Ajaxing,并且我有 2 块源代码。第一个是:

window.lastSavedContents = "<?php echo htmlentities( $contents ); ?>";

第二个是用户在文本编辑器中输入的任何内容。问题是window.lastSavedContentshtmlentities 编码的,而第二个块不是。

如何检查等价性?

【问题讨论】:

    标签: php javascript html-entities


    【解决方案1】:

    首先,不要使用htmlentities,而是使用htmlspecialchars,它只编码&lt;&gt;&amp;"。这样,您可以简单地使用

    替换这些实体
    var decoded = encoded.replace(/&amp;/g, '&')
                         .replace(/&lt;/g, '<')
                         .replace(/&quot;/g, '"')
                         .replace(/&gt;/g, '>');
    

    如果您仍想使用htmlentities,您可以简单地创建一个临时的div

    var div = document.createElement('div');
    div.innerHTML = encoded;
    var decoded = div.firstChild.nodeValue;
    

    【讨论】:

      【解决方案2】:

      您可以找到一种方法来绕过对数据进行实体编码,或者在 Javascript 中解码 window.lastSavedContents。这里有一个函数可以帮助你做到这一点:http://phpjs.org/functions/html_entity_decode:424

      【讨论】:

        猜你喜欢
        • 2018-08-28
        • 1970-01-01
        • 2015-06-06
        • 2021-11-06
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        相关资源
        最近更新 更多