为了账号安全,请及时绑定邮箱和手机立即绑定

将PHP字符串传递给JavaScript变量(并转义换行符)

将PHP字符串传递给JavaScript变量(并转义换行符)

一只斗牛犬 2019-05-27 16:54:47
编码PHP字符串以输出到JavaScript变量的最简单方法是什么?我有一个PHP字符串,其中包括引号和换行符。我需要将此字符串的内容放入JavaScript变量中。通常,我只是在PHP文件中构建我的JavaScript,àla:<script>   var myvar = "<?php echo $myVarValue;?>";</script>但是,当$myVarValue包含引号或换行符时,这不起作用。
查看完整描述

4 回答

?
米脂

TA贡献1836条经验 获得超3个赞

扩展别人的答案:

<script>
  var myvar = <?php echo json_encode($myVarValue); ?>;</script>

使用json_encode()需要:

  • PHP 5.2.0或更高版本

  • $myVarValue 编码为UTF-8(当然还有US-ASCII)

由于UTF-8支持完整的Unicode,因此动态转换应该是安全的。

请注意,因为json_encode转义正斜杠,即使包含的字符串</script>也会安全地转义,以便使用脚本块进行打印。


查看完整回答
反对 回复 2019-05-27
?
九州编程

TA贡献1785条经验 获得超4个赞

用JSON编码


查看完整回答
反对 回复 2019-05-27
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

我遇到过类似的问题,并了解以下是最佳解决方案:

<script>
    var myvar = decodeURIComponent("<?php echo rawurlencode($myVarValue); ?>");</script>

但是,micahwittman发布的链接表明存在一些较小的编码差异。PHP的rawurlencode()功能应该符合RFC 1738,而Javascript似乎没有这样的努力decodeURIComponent()


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 1898 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信