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在解析的时候,遇到换行就会出现问题. 

//解决方案 替换\n 使用str_replace 或者preg_replace 都可以,推荐使用str_replace,利用正则效率要低点
$a = str_replace("\n",'<br>',$a);
$b = preg_replace('/\n/','<br>',$b);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM