php字符串赋值到js的坑

  很早以前的一个比较坑的问题,今天又遇到了,记录一下,免得以后再次入坑.

  把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);
原文地址:https://www.cnblogs.com/loveyouyou616/p/5949062.html