之前没考虑到这个问题,以为直接调用输出下就行了,这次有个编辑跟我说,页面不能加载更多内容了,用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> ... |
友情提示:垃圾评论一律封号...