PHP脚本无法读取MySQL表中HTML代码的问题排查求助
问题原因及解决办法
- 首先排除MySQL字段类型问题:你用的
text类型搭配utf8mb4_unicode_ci编码完全没问题,足够存储HTML内容,编码也支持所有特殊字符,所以不是字段的锅。 - 真正问题出在模板输出方式:你用的
{{ __($doctor->about) }}是Laravel框架的自动转义输出语法,它会把HTML标签转成实体字符(比如<变成<),浏览器只会把这些当成纯文本显示,不会解析成HTML。 - 解决办法:
- 要是不需要翻译功能,直接用
{!! $doctor->about !!},这个语法会关闭自动转义,让浏览器正常解析HTML标签。 - 如果确实需要用
__()翻译函数,就改成{!! __($doctor->about) !!},但务必确保内容是安全的(比如仅后台管理员输入,不是用户提交的未过滤内容),避免XSS攻击。
- 要是不需要翻译功能,直接用
- 额外提醒:如果是用户提交的HTML内容,一定要先做过滤(比如用HTMLPurifier工具),清除恶意代码后再存入数据库。
内容的提问来源于stack exchange,提问作者Moustfa Fathy
相关产品推荐
相关产品推荐

