You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何快速转换变量中HTML实体为原始字符适配WhatsApp

PHP HTML实体转原生重音字符高效方案

直接使用PHP原生内置函数html_entity_decode()即可实现需求,不需要自行编写字符映射表或者正则替换,性能最高、兼容性最好。

问题原因

file_get_contents读取到的内容中á、ã、ç这类重音字符被转为ç格式的HTML实体,WhatsApp接口不识别这类实体就会出现消息截断;另外原始代码直接把内容拼接到跳转URL中,没有做URL编码,本身也存在特殊字符打断参数结构的风险。

修正后可直接使用的代码

$fim = file_get_contents($pedidoaux);
// 将所有HTML实体转回UTF-8编码的原始字符,覆盖引号类实体的转换
$fim = html_entity_decode($fim, ENT_QUOTES, 'UTF-8');
// 对拼接进URL的文本做标准URL编码,彻底避免参数截断问题
$fim = urlencode($fim);

header("Location: http://api.whatsapp.com/send?1=pt_BR&phone=WHATSAPPNUMBER&text=$fim");

关键注意点

  • html_entity_decode第二个参数传ENT_QUOTES:会同时转换单引号、双引号对应的HTML实体,避免内容中引号导致的格式异常
  • 第三个参数固定传'UTF-8':指定输出字符编码为UTF-8,兼容葡萄牙语等带重音的字符,避免不同PHP版本默认编码不一致导致的乱码问题
  • 追加urlencode处理:是URL传参的标准要求,就算没有HTML实体,内容里的空格、&、?等保留字符也会截断URL参数,这一步是必须加的

内容的提问来源于stack exchange,提问作者MJFM apps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 22:01:10