很早以前的一个比较坑的问题,今天又遇到了,记录一下,免得以后再次入坑.
把php赋值到view层时,如果不是直接渲染到页面,而是赋值给变量.字符如果有回车或者换行就会出现问题.
示例:
<?php $a = 'sdfsdf sadfasdf asdfasdf'; $b = '<pre>asdfasdf asdfasdf asdfasdf</pre>'; ?> <body> <div></div> <script> var a = '<?php echo $a ?>'; var b = '<?php echo $b ?>'; document.getElementsByTagName('div')[0].innerHTML = a; </script> </body>
这里的$a,$b是前端编辑器取到的值.
报错:Uncaught SyntaxError: Unexpected token ILLEGAL ,因为js在解析的时候,遇到换行就会出现问题.
//解决方案 替换 使用str_replace 或者preg_replace 都可以,推荐使用str_replace,利用正则效率要低点 $a = str_replace(" ",'<br>',$a); $b = preg_replace('/ /','<br>',$b);