如何在Javascript中转义PHP变量?

时间:2014-05-30 22:54:08

标签: javascript php wordpress

我正在尝试创建一个Javascript函数,该函数回显一个名为the_title()的Wordpress函数,该函数只返回博客的标题。通过PHP它可以很好地回应,但是当我通过Javscript执行时,引号似乎没有转义(特别是单引号)。任何帮助或解释为什么会发生这种情况?

代码:

function createSliderTabs() {   
    var para = document.createElement("li");
    var strings = "<?php the_title(); ?>";
    var post_string = strings.replace(/"/g, "").replace(/'/g, "").replace(/\(|\)/g, "");
    var node = document.createTextNode(post_string);
    para.appendChild(node);
    var element = document.getElementById("control-navigation");
    element.appendChild(para);
}

    createSliderTabs();

结果:
梅西百货的先驱广场(必须包括空格或者它会改为单引号)

应该是什么:
梅西的先驱广场

有关为何发生这种情况的任何帮助或指导? Thx提前......

2 个答案:

答案 0 :(得分:2)

从php到js转换,你总是必须使用json_encode()

答案 1 :(得分:-1)

您可以使用html_entity_decode

我对wordpress并不熟悉,但我想你会在the_title()中使用它:

function the_title()
{
   $str = 'Macy&#8217;s Herald Square';
   echo html_entity_decode ($str, ENT_COMPAT , "UTF-8");
}

如果您需要使用json_encode(),您应该可以

$json = html_entity_decode(json_encode($array), ENT_COMPAT , "UTF-8");

编辑:添加ENT_COMPAT , "UTF-8"