PHP在Wordpress中自动编码&

标签 php javascript wordpress

已解决

用 htmlspecialchars() 包装 php 中 & 字符的每个实例,通过输出 & 而不是 & 解决了我的问题,并允许下一页正确识别每个变量!

/已解决/

我目前正在 WordPress 网站上工作,并尝试在 php 中创建一些 javascript,然后将其回显到页面上。该 javascript 的一部分使用 window.open() 和我在 php.ini 中生成的 url 打开一个新窗口/选项卡。但是,当我回显包含 url 的变量时,所有 & 字符都会自动编码为 &

以下是正在发生的情况的示例:

...
?>
<script type="text/javascript">
var url = "&";
var url2 = "<?php echo "&"; ?>";
var url3 = <?php echo json_encode("&"); ?>;
var url4 = "<?php echo html_entity_decode("&"); ?>";
var url5 = "<?php echo html_entity_decode("&#038;"); ?>";
</script>
<?php
...

然后,当我检查插入脚本的元素时显示的实际 JavaScript 是

...
<script type="text/javascript">
    var url = "&#038;";
    var url2 = "&#038;";
    var url3 = "&#038;";
    var url4 = "&#038;";
    var url4 = "&#038;";
</script>
...

我尝试过 urlencode()-ing url 中的所有 &,但 $_GET 无法将它们识别为 url 变量。

这只是 WordPress 的事情,还是 php 的事情?而且,我能做些什么来使 & 显示为 & 的吗?!

编辑

由于我想要做的事情似乎有些困惑,让我进一步解释一下。我正在使用 php 而不是 javascript 创建一个 url。然后我使用 php 生成一些 javascript,然后将其回显到页面上。上面的摘录仅显示了我实际面临的问题。实际的鳕鱼段看起来像这样:

$header_element .= "<script type=\"text/javascript\">\n"
                . "function validateForm(form) {\n"
                . "\tvar isInvalid = false;\n"
                . $str_all_validation
                . "\tif (!isInvalid) {\n"
                . "\t\trunReport(form);\n"
                . "\t} else {\n"
                . "\talert('You must enter all report parameters.');\n"
                . "\t}\n"
                . "}\n"
                . "function runReport(form) {\n"
                . "\twindow.open('/?page_id=172&PageId=$str_page_id&ReportName=$str_report_name"
                . "$str_all_param, '_blank')\n"
                . "}\n"
                . "</script>";

除了将所有 & 字符输出为 & 之外,上述输出正确。

最佳答案

我认为您的页面或 php 的编码混淆了。

尝试在你的 php 中添加这一行:

header('Content-Type: text/html; charset=UTF-8');

这应该确保您使用 php 输出的任何内容都是 UTF-8 格式的。

并确保您的 javascrip 编码是相同的。

PS 您可以将 charset=UTF-8 部分更改为 charset=ISO-8859-1 或您在 javascript 中使用的任何编码。

编辑:

不要使用最后一个答案,这不是编码问题!!!

尝试将 html_entity_decode() 替换为 htmlspecialchars()

关于PHP在Wordpress中自动编码&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18366213/

相关文章:

javascript - 在 JavaScript 中更改第 n 个子项的属性

wordpress - 使用 web.config 将 HTTP 重定向到 HTTPs

python - 如何将事件从网页发送到客户端应用程序

css - SVG 填充颜色悬停过渡不动画

php - div标签内的水平循环mysql

PHP - MySQL 到 SimpleXML,确保正确的编码

php - 我如何获得适用于 Windows 的 libmemcached?

php - 电报机器人找不到从(截断...)开始的实体的结尾

javascript - 我的碰撞检测实现行为不正常

javascript - V8 解释器的制表符补全?