如何在PHP输出字符串中嵌入换行?Windows 11环境实现
解决PHP输出两行内容的问题
你当前的代码问题在于对nl2br()函数的用法误解,以下是几种可行的修正方案:
方案1:直接输出HTML换行标签(最直接)
nl2br()的作用是将**纯文本中的换行符(\n)**转换为HTML换行标签<br>,你已经手动添加了换行标签,不需要再调用这个函数:
<!DOCTYPE html> <html> <body> <?php $s = 'xxx'; $s .= '<br>'; // 推荐用小写标签,符合HTML规范 $s .= 'yyy'; echo $s; ?> </body> </html>
方案2:用换行符配合nl2br()
如果想保留nl2br()的用法,需要先在字符串中加入换行符(可以用\n或跨平台的PHP_EOL),再让函数转换为HTML换行:
<!DOCTYPE html> <html> <body> <?php $s = 'xxx'; $s .= PHP_EOL; // 自动适配Windows/Linux的换行符 $s .= 'yyy'; echo nl2br($s); ?> </body> </html>
方案3:拆分echo语句(最直观)
直接分多次输出内容和换行标签,逻辑更清晰:
<!DOCTYPE html> <html> <body> <?php echo 'xxx'; echo '<br>'; echo 'yyy'; ?> </body> </html>
补充说明
Windows 11环境对PHP的换行逻辑没有特殊影响,核心是区分纯文本换行符和HTML换行标签的区别:浏览器只会识别HTML标签来渲染换行,纯文本的\n在HTML中只会被当作空格,需要通过nl2br()转换后才能生效。
内容的提问来源于stack exchange,提问作者Richard Cramer
相关产品推荐
相关产品推荐

