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

不安全的做法:

1
2
3
4
5
...
<script>
  var share_content='<?php echo $detail['content'];?>';
</script>
...

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

正确的做法如下,

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

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

1
2
3
4
5
6
7
8
9
10
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>
...


相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!