php技术博客

记录php相关学习知识及开发示例、疑难问题等

[原创] 如何将php变量值安全的输出到js中

之前没考虑到这个问题,以为直接调用输出下就行了,这次有个编辑跟我说,页面不能加载更多内容了,用chrome浏览器调试模式查看有js报错,原来是输出的内容中有换行符造成js错误,从而导致后面的js不能正常执行了。

不安全的做法:

...
<script>
  var share_content='<?php echo $detail['content'];?>';
</script>
...

上面的代码是不严谨的,没有考虑到变量可能含有一些特殊的字符,如换行、引号等。

正确的做法如下,

...
<script>
  var share_content="<?php echo addcslashes($detail['content'],"\v\t\n\r\f\"\'\\/");?>";
</script>
...

大家可以封装成一个函数来处理这种情况,代码如下

function php_safetransfer_js($str){
        $str='"'.addcslashes($str, "\v\t\n\r\f\"'\\/").'"';
        return $str;
}

...
<script>
  var share_content=<?php echo php_safetransfer_js($detail['content'])?>;
</script>
...


版权声明:本站原创文章,转载请注明出处:php技术博客,否则将追究法律责任