php字符串赋值到js的坑

本文介绍了一种常见问题的解决方案,即如何处理PHP变量赋值到JavaScript时遇到的换行符导致的语法错误。通过使用str_replace替换回车换行符为HTML标签<br>,确保了前后端数据传递的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  把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);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值