为什么<br>标签在PHP代码中不生效?下述代码无法实现语句换行
问题原因
<br>是HTML专属的换行标签,仅在浏览器解析HTML内容时会被识别为换行,你遇到不生效的情况基本是以下两种场景:
- 直接在命令行终端运行PHP脚本:终端不会解析HTML标签,只会把
<br>作为普通字符串输出,自然不会有换行效果 - 在Web环境下运行但标签无法被解析:要么是输出内容被转义,要么是返回类型被指定为纯文本,都会导致浏览器不识别
<br>为换行标签
对应解决方法
命令行运行场景
将输出的<br>替换为PHP的内置换行常量PHP_EOL,或者双引号包裹的转义字符\n,示例修改后的代码如下:
<?php echo "This is my first php file"; echo PHP_EOL; echo "This is my first php file "; echo "First name" . "second name"; echo PHP_EOL; echo 6; ?>
Web运行场景
按以下两步排查即可:
- 打开网页源码调试功能,查看输出的内容是否是原生
<br>,如果输出的是转义后的<br>,检查输出前是否调用了htmlspecialchars()、htmlentities()这类HTML转义函数,移除对应不必要的转义逻辑即可 - 检查接口响应头的
Content-Type字段,如果值为text/plain,浏览器会将所有返回内容按纯文本解析,不会识别HTML标签,在代码最开头添加一行header('Content-Type: text/html; charset=utf-8');即可修复。
内容的提问来源于stack exchange,提问作者Vinuri Gamage
相关产品推荐
相关产品推荐

