使用PHP发送短信:API库与现成解决方案概览
在现代Web应用中,发送短信功能仍然很受欢迎:注册确认、双因素认证、订单状态通知。在本文中,我们将介绍如何使用流行的API库和服务,通过PHP实现短信发送。我们将讨论官方SDK以及基于cURL的轻量级解决方案。
1. 选择短信服务商和库
开始之前,您需要在某个短信服务中注册并获取API密钥。对于PHP,有几种经过验证的选择:
- sms.ru – 流行的俄罗斯服务,API简单,并提供官方PHP库。
- Twilio – 国际巨头,拥有强大的PHP SDK(twilio/sdk)。
- ClickSend – 通用服务,支持REST API。
- 简单的cURL类 – 如果您不想引入外部依赖。
2. 通过Composer安装库
使用Twilio或ClickSend时,最方便的方式是通过Composer。安装示例:
composer require twilio/sdkcomposer require clicksend/clicksend-php对于sms.ru,官方库也可以通过Composer安装:
composer require smsru/smsru如果您不想使用依赖管理器,可以手动从GitHub下载PHP文件,或者自己编写一个基于cURL的类。
3. 通过sms.ru发送短信示例
sms.ru服务提供了简单易懂的API。以下是使用官方库发送消息的示例:
<?phprequire_once 'vendor/autoload.php';
use SMSRU\\SMSRU;
$sms = new SMSRU('您的_API_密钥');
$data = new stdClass();$data->to = '79123456789'; // 接收者号码$data->text = '测试消息'; // 短信内容$data->from = 'MySite'; // 发送者名称(签名)
$response = $sms->send_one($data);
if ($response->status == 'OK') { echo "消息已发送。ID: " . $response->sms_id;} else { echo "错误: " . $response->status_text;}?>重要提示: 您需要先在sms.ru个人账户中注册发送者签名并充值余额。
4. 通过Twilio SDK发送短信
Twilio是国际发送中最可靠的服务之一。PHP代码示例:
<?phprequire_once 'vendor/autoload.php';
use Twilio\\Rest\\Client;
$account_sid = '您的_ACCOUNT_SID';$auth_token = '您的_AUTH_TOKEN';$twilio_number = '+1234567890'; // 从Twilio获取的号码
$client = new Client($account_sid, $auth_token);
$message = $client->messages->create( '+79123456789', // 接收者号码 [ 'from' => $twilio_number, 'body' => '来自Twilio和PHP的问候!' ]);
echo "已发送,ID: " . $message->sid;?>Twilio支持双向通信、Webhook和送达状态检查。
5. 无需第三方库的实现(cURL)
如果您不想使用Composer,可以编写一个通用的cURL函数。以sms.ru为例:
<?phpfunction sendSms($api_key, $phone, $message) { $url = 'https://sms.ru/sms/send'; $params = [ 'api_id' => $api_key, 'to' => $phone, 'msg' => $message, 'json' => 1 ];
$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch); curl_close($ch);
return json_decode($response, true);}
$result = sendSms('