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

Twilio短信消息中的引号处理问题求助

解决方案

问题核心在于参数编码处理不当,以及可能的双重转义/编码问题,以下是针对性解决步骤:

1. 先解码HTML实体

你收到的Bob's...是HTML实体编码,htmlspecialchars_decode无法处理'这类实体,改用html_entity_decode配合ENT_QUOTES参数,可同时解码单引号和双引号的实体:

$message = html_entity_decode($_POST['message'], ENT_QUOTES);

2. 确保获取原始提交内容

如果服务器开启了magic_quotes_gpc(仅老版本PHP存在),需先移除自动添加的反斜杠:

if (get_magic_quotes_gpc()) {
    $message = stripslashes($message);
}

3. 用curl正确传递POST参数

不要手动拼接URL或POST字符串,用http_build_query让PHP自动处理参数编码,配合curl的CURLOPT_POSTFIELDS:

// 构造Twilio请求参数
$twilioParams = [
    'From' => '+你的Twilio号码',
    'To' => '+接收方号码',
    'Body' => $message
];

// 初始化curl请求
$ch = curl_init('https://api.twilio.com/2010-04-01/Accounts/你的账户SID/Messages.json');

// 设置curl选项
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($twilioParams));
curl_setopt($ch, CURLOPT_USERPWD, '你的账户SID:你的认证Token');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行并关闭请求
$response = curl_exec($ch);
curl_close($ch);

关键原因说明

  • Twilio API Explorer能正常发送,是因为它内部自动处理了参数的URL编码和特殊字符转义,你手动生成的curl代码因硬编码未转义参数导致解析失败。
  • addslashes是为数据库查询设计的转义方式,不适用于API请求的参数编码,因此无效。

内容的提问来源于stack exchange,提问作者G-J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:32:54