
当 PHP 文件被服务器解析时, 中的 PHP 代码会被执行,导致只显示结果“ok”;要原样显示代码,需对特殊字符进行 HTML 实体转义或使用 htmlentities() 函数处理。
当 php 文件被服务器解析时,`` 中的 php 代码会被执行,导致只显示结果“ok”;要原样显示代码,需对特殊字符进行 html 实体转义或使用 `htmlentities()` 函数处理。
在 Web 开发中,经常需要在
要解决这一问题,核心原则是:确保 PHP 代码作为纯文本传入 textarea,不被解析器识别为可执行指令。以下是两种推荐方案:
✅ 方案一:手动 HTML 实体转义(推荐用于静态/少量代码)
将 、& 等关键符号替换为对应 HTML 实体:
<textarea><?php echo 'ok'; ?></textarea>
渲染后,textarea 内将准确显示 。注意:?> 中的 > 是 > 的实体,而 ? 前无需转义; 必须写成 <?,否则仍可能触发短标签解析(尤其在启用 short_open_tag 时)。
✅ 方案二:服务端自动编码(推荐用于动态内容)
利用 PHP 自带的 htmlentities() 或更安全的 htmlspecialchars() 对代码字符串进行编码:
<textarea><?php echo htmlspecialchars("<?php echo 'ok'; ?>", ENT_QUOTES, 'UTF-8'); ?></textarea>htmlspecialchars() 比 htmlentities() 更轻量,且默认仅转义 , ', ", &,足以防止代码执行和 XSS 风险,是展示代码片段的首选函数。
立即学习“PHP免费学习笔记(深入)”;
⚠️ 注意事项:
- ❌ 不要依赖禁用 PHP(如改用 .html 后缀)来规避问题——这牺牲了页面的动态能力,且在多数现代项目中不切实际;
- ❌ 避免使用 echo "" 这类嵌套写法,极易引发语法错误或双重解析;
- ✅ 若需展示多行代码,建议结合
<code> + htmlspecialchars() 实现语法高亮兼容的纯文本展示; </code>
- ✅ 在表单提交场景中,若用户输入含 PHP 代码,务必在服务端入库前统一 htmlspecialchars() 处理,再输出到 textarea,形成安全闭环。
总结:显示而非执行 PHP 代码的关键,在于切断解析器对



















