将特殊字符从php传递到javascript

时间:2011-11-20 09:30:19

标签: php javascript

我将一个字符串变量从php传递给javascript 该字符串包含“ 但是javascript没有得到它 我怎么能逃脱这个角色?

UPD:
更清楚一点,首先我不想在代码中做很多改动(不是我写的)...
字符串以这种方式传递:

var string = '<? echo $string;?>' ;

使用单引号。也许有办法改变smth。在字符串本身?

3 个答案:

答案 0 :(得分:2)

您可以使用json_encode方法:

<script type="text/javascript">
    var value = <?php echo json_encode($someValue); ?>;
    alert(value);
</script>

答案 1 :(得分:0)

假设使用双引号分隔字符串,add_slashes将在特定情况下完成工作。

将数据包装在关联数组中,通过json_encode运行并改变JS以期望更改的数据结构是一种更安全的方法(因为这将处理其他重要的字符,例如文字新线)。

(从技术上讲,使用json_encode的当前实现,您可以跳过将其包装在关联数组中...但是普通字符串不是有效的JSON,我倾向于避免依赖于所谓的函数在给定无法转换为JSON的数据结构时生成JSON而不抛出异常。

如果要将脚本嵌入到HTML文档中,则还必须采取措施确保生成的JS不包含任何可能导致问题的HTML(例如脚本中包含的"属性值)。

答案 2 :(得分:0)

在php代码中使用urlencode()函数将字符串传递给javascript代码,并在javascript中解码decodeuri()来解码该字符串。