我将一个字符串变量从php传递给javascript 该字符串包含“ 但是javascript没有得到它 我怎么能逃脱这个角色?
UPD:
更清楚一点,首先我不想在代码中做很多改动(不是我写的)...
字符串以这种方式传递:
var string = '<? echo $string;?>' ;
使用单引号。也许有办法改变smth。在字符串本身?
答案 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()来解码该字符串。