之前没考虑到这个问题,以为直接调用输出下就行了,这次有个编辑跟我说,页面不能加载更多内容了,用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> ...
发表评论 取消回复