使用 PHP 发送短信可以通过 SMS 网关服务完成。SMS 网关服务是一种允许使用包括 PHP 在内的各种编程语言通过 API(应用编程接口)发送短信的服务。目前有多种 SMS 网关服务,如 Twilio、Nexmo 和 Plivo,它们都提供发送 SMS 消息的 API。
使用 Twilio API 发送短信的 PHP 代码
下面是一个如何使用 Twilio API 在 PHP 中发送短信的示例:
<?php
require_once 'path/to/twilio-php/Services/Twilio.php';
$account_sid = 'your_account_sid';
$auth_token = 'your_auth_token';
$client = new Services_Twilio($account_sid, $auth_token);
$message = $client->account->sms_messages->create(
'+1234567890', // From a valid Twilio number
'+0987654321', // Text this number
"Hello, this is a test SMS sent using the Twilio API in PHP."
);
echo "SMS sent successfully";
?>
您需要在 Twilio 注册一个账户,并获得账户 sid 和授权令牌,以便在上述代码中使用。此外,您还需要从 Twilio 购买一个电话号码来发送短信。然后,您可以将 +1234567890 替换为您的 Twilio 电话号码,将 +0987654321 替换为收件人的电话号码。
其他 SMS 网关也有类似的通过 API 发送短信的方法,您需要查看它们的文档,了解如何使用它们的 API 从 PHP 发送短信。
值得注意的是,通过 SMS 网关服务发送短信通常需要付费订阅,因此可能会产生额外的短信发送费用。
使用 Nexmo API 发送短信的 PHP 代码
下面是一个如何在 PHP 中使用 Nexmo API 发送短信的示例:
<?php
$url = 'https://rest.nexmo.com/sms/json?' . http_build_query([
'api_key' => 'your_api_key',
'api_secret' => 'your_api_secret',
'to' => 'recipient_phone_number',
'from' => 'your_nexmo_number',
'text' => 'Hello, this is a test SMS sent using the Nexmo API in PHP.'
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response);
if($response->messages[0]->status != 0) {
echo "SMS sent successfully";
} else {
echo "SMS sending failed";
}
?>
您需要在 Nexmo 注册一个账户,并获得 API 密钥和秘密,以便在上述代码中使用。此外,您还需要从 Nexmo 购买一个电话号码来发送短信。然后,你可以用收件人的电话号码替换 recipient_phone_number,用你的 Nexmo 电话号码替换 your_nexmo_number。
如你所见,这段代码使用curl库向Nexmo API端点发出POST请求,并提供发送短信所需的参数。重要的是,发送后要检查短信的状态,查看返回短信的 “status”。
值得注意的是,通过短信网关服务发送短信通常需要付费订阅,因此可能会产生额外的短信发送费用。