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
相关产品推荐
相关产品推荐

