将特殊字符从php传递到javascript

Passing special characters from php to javascript

本文关键字:javascript php 特殊字符      更新时间:2023-09-26

我正在将一个字符串变量从php传递给javascript。
字符串包含"但是javascript不懂。
如何转义这个字符?

乌利希期刊指南:
更明确地说,首先我不想在代码中做太多更改(不是我写的)…
字符串是这样传递的:

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

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

您可以使用json_encode方法:

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

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

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

(从技术上讲,与json_encode的当前实现,你可以跳过包装它在一个关联数组…但一个普通的字符串不是有效的JSON,我倾向于避免依赖于一个函数,应该生成JSON不抛出异常当给定的数据结构,不能转化为JSON)。

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

使用php代码中的urlencode()函数将字符串传递给javascript代码,并使用javascript中的decodeuri()函数对该字符串进行解码