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

PHP中如何将 换行编码转换为 适配Twilio WhatsApp模板?

解决PHP中Windows换行符转Unix换行符适配Twilio WhatsApp模板的问题

嘿,这个问题我太熟悉了!Twilio的WhatsApp消息模板审核通过后,对内容格式(尤其是换行符)的一致性要求特别严格——模板里用的是Unix风格的\n(LF),但咱们Windows环境下生成的内容默认是\r\n(CRLF),这就导致实际发送的内容和模板不匹配,直接触发发送失败。

下面给你几个PHP里简单有效的转换方法:

方法1:直接替换Windows换行符

用str_replace()精准替换所有\r\n为\n,这是最直接的方式:

// 你的原始消息(带Windows换行)
$originalMessage = "第一行内容\r\n第二行内容\r\n第三行内容";

// 转换为Unix风格换行
$formattedMessage = str_replace("\r\n", "\n", $originalMessage);

方法2:处理混合换行场景

如果你的消息里可能同时存在\r\n、单独的\r(比如从不同来源拼接的内容),可以用正则表达式来统一处理:

$formattedMessage = preg_replace('/\r\n?/', "\n", $originalMessage);

这个正则会匹配\r\n或者单独的\r,全部替换成\n,覆盖更复杂的情况。

额外验证小技巧

转换完成后,你可以用下面的方式确认换行符是否正确转换:

// 输出十六进制查看换行符(0a是\n,0d0a是\r\n)
echo bin2hex($formattedMessage);

这样能直观看到每个字符的编码,确保没有残留的Windows换行符。

另外要注意:如果你的消息里包含动态变量,也要确保变量内容里的换行符也做同样的转换,不然还是会因为局部格式不匹配导致发送失败哦!

内容的提问来源于stack exchange,提问作者Bhargav Kaklotara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:22:30