HoRain云--php的html实体和字符之间的转换

   

🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

1. 字符转 HTML 实体

函数

参数说明

2. HTML 实体转字符

函数

3. 常见问题

Q1:转换后出现乱码?

Q2:何时用 htmlspecialchars 还是 htmlentities?

Q3:如何处理单引号?

4. 扩展工具

总结


img


1. 字符转 HTML 实体

将特殊字符(如 <, >, & 等)转换为 HTML 实体,防止 XSS 攻击或确保正确显示。

函数
  • htmlspecialchars()
    仅转换 5 个关键字符&, ", ', <, >

    $str = "<a href='test'>链接</a>";
    echo htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
    // 输出:&lt;a href=&#039;test&#039;&gt;链接&lt;/a&gt;
    
  • htmlentities()
    转换 所有可识别字符 到实体(包括特殊符号如 ©, 等)。

    $str = "© 2024 公司 & 符号";
    echo htmlentities($str, ENT_QUOTES, 'UTF-8');
    // 输出:&copy; 2024 公司 &amp; 符号
    
参数说明
  • flags:控制转换行为(常用值):
    • ENT_COMPAT:默认,仅转双引号。
    • ENT_QUOTES:转双引号和单引号。
    • ENT_HTML5:遵循 HTML5 规范。
  • encoding:必须与内容编码一致(如 UTF-8),避免乱码。

2. HTML 实体转字符

将实体还原为原始字符。

函数
  • htmlspecialchars_decode()
    还原由 htmlspecialchars() 转换的实体。

    $entity = "&lt;a href=&quot;test&quot;&gt;链接&lt;/a&gt;";
    echo htmlspecialchars_decode($entity);
    // 输出:<a href="test">链接</a>
    
  • html_entity_decode()
    还原所有 HTML 实体(包括 htmlentities() 生成的)。

    $entity = "&copy; 2024 &amp; 符号";
    echo html_entity_decode($entity, ENT_QUOTES, 'UTF-8');
    // 输出:© 2024 & 符号
    

3. 常见问题

Q1:转换后出现乱码?

确保函数的 encoding 参数(如 UTF-8)与内容实际编码一致。

Q2:何时用 htmlspecialchars 还是 htmlentities
  • 安全场景(如输出用户输入到 HTML):优先用 htmlspecialchars,它仅处理关键字符,性能更好。
  • 需显示特殊符号实体(如版权符号):用 htmlentities
Q3:如何处理单引号?

设置 flagsENT_QUOTES,确保单双引号均被转换。


4. 扩展工具

  • get_html_translation_table()
    查看 HTML 转换映射表:

    print_r(get_html_translation_table(HTML_ENTITIES));
    

总结

  • 输出到 HTML:用 htmlspecialchars($str, ENT_QUOTES, 'UTF-8') 防止 XSS。
  • 还原实体:用 html_entity_decode()htmlspecialchars_decode()
  • 编码一致性:始终明确指定 UTF-8 避免乱码。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值