You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP输出$faq['content']至JS时出现未转义换行符错误求助

解决JS字符串字面量未转义换行的错误

这个问题很常见,根源就是你直接把PHP变量输出到JavaScript字符串里时,没有处理其中的特殊字符——比如$faq['content']里的换行、单引号这类符号,直接塞进JS的单引号字符串会破坏语法规则,浏览器自然就报错了。

给你两种可靠的解决办法,优先推荐第一种:

方法一:用json_encode()自动转义(最稳妥)

PHP的json_encode()函数会自动把PHP字符串转换成完全符合JavaScript语法规范的字符串,所有特殊字符(换行、引号、反斜杠等)都会被正确转义,不用你手动处理。修改后的代码如下:

<script> 
setTimeout(function () { 
    $(".opencxbody").html('<div style="max-height:400px; overflow-y: scroll;">' + <?php echo json_encode($faq['content']); ?> + '</div>'); 
}, 100); 
</script>

注意这里json_encode()输出的结果已经自带双引号了,所以不需要再给它加单引号或双引号,直接和前后的HTML字符串拼接就行。

方法二:手动转义特殊字符(适合简单场景)

如果因为某些原因不想用json_encode,可以手动转义单引号和换行符:

  • 用addslashes()转义单引号,避免提前结束JS字符串
  • 用str_replace()把换行符\n替换成JS能识别的\\n

示例代码:

<script> 
setTimeout(function () { 
    var faqContent = '<?php echo str_replace("\n", "\\n", addslashes($faq['content'])); ?>';
    $(".opencxbody").html('<div style="max-height:400px; overflow-y: scroll;">' + faqContent + '</div>'); 
}, 100); 
</script>

不过这种方法只处理了换行和单引号,如果$faq['content']里还有其他特殊字符(比如双引号、反斜杠),还是会出问题,所以优先选第一种方法更省心。

内容的提问来源于stack exchange,提问作者Farid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:12:53