很早以前的一個比較坑的問題,今天又遇到了,記錄一下,免得以后再次入坑.
把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在解析的時候,遇到換行就會出現問題.
//解決方案 替換\n 使用str_replace 或者preg_replace 都可以,推薦使用str_replace,利用正則效率要低點 $a = str_replace("\n",'<br>',$a); $b = preg_replace('/\n/','<br>',$b);
