我有一个号码数据库,我想使用短信提供商发送短信。我的代码和短信api一起在这里,作为一个新手,我遇到的问题是他们的代码是针对一条短信的,我想在我的数据库中循环,并通过curl发布我数据库中的每个数字。
非常感谢您的帮助。
$result = mysql_query($stremail);
$emails = array();
while ($row = mysql_fetch_array($result)) {
$recipient = $row['mobilenumber1'];
class SendSMS
{
private $url = 'http://'; // url of the service
private $username = ''; //
private $password = ''; //
private $message_id,$credits_used;
function __construct()
{
}
public function getMessageID()
{
return $this->message_id;
}
public function getCreditsUsed()
{
return $this->credits_used;
}
// public function to commit the send
public function send($message,$recipient,$originator)
{
$url_array= array('message'=>$message,'mobile_number'=>$recipient,'originator'=>$originator,'username'=>$this->username, 'password'=>$this->password);
$url_string = $data = http_build_query($url_array, '', '&');
// we're using the curl library to make the request
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $this->url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $url_string);
curl_setopt($curlHandle, CURLOPT_POST, 1);
$responseBody = curl_exec($curlHandle);
$responseInfo = curl_getinfo($curlHandle);
curl_close($curlHandle);
return $this->handleResponse($responseBody,$responseInfo);
}
private function handleResponse($body,$info)
{
if ($info['http_code']==200){ // successful submission
$xml_obj = simplexml_load_string($body);
// extract message id and credit usuage
$this->message_id = (int) $xml_obj->message_id;
$this->credits_used = (int) $xml_obj->credits_used;
return true;
}
else{
$this->message_id = null;
$this->credits_used = null;
// error handling
return false;
}
}
}
$sms = new SendSMS();
$sms->send($message1,$recipient,"header");
echo "sent!";
}
class SendSMS
{
private $url = 'http://'; // url of the service
private $username = ''; //
private $password = ''; //
private $message_id,$credits_used;
function __construct()
{
}
public function getMessageID()
{
return $this->message_id;
}
public function getCreditsUsed()
{
return $this->credits_used;
}
// public function to commit the send
public function send($message,$recipient,$originator)
{
$url_array= array('message'=>$message,'mobile_number'=>$recipient,'originator'=>$originator,'username'=>$this->username, 'password'=>$this->password);
$url_string = $data = http_build_query($url_array, '', '&');
// we're using the curl library to make the request
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $this->url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $url_string);
curl_setopt($curlHandle, CURLOPT_POST, 1);
$responseBody = curl_exec($curlHandle);
$responseInfo = curl_getinfo($curlHandle);
curl_close($curlHandle);
return $this->handleResponse($responseBody,$responseInfo);
}
private function handleResponse($body,$info)
{
if ($info['http_code']==200){ // successful submission
$xml_obj = simplexml_load_string($body);
// extract message id and credit usuage
$this->message_id = (int) $xml_obj->message_id;
$this->credits_used = (int) $xml_obj->credits_used;
return true;
}
else{
$this->message_id = null;
$this->credits_used = null;
// error handling
return false;
}
}
}
$sms = new SendSMS();
$result = mysql_query($stremail);
while ($row = mysql_fetch_array($result)) {
$recipient = $row['mobilenumber1'];
$sms->send($message1,$recipient,"header");
}
如果您的短信提供商不允许您通过API接口发送批量短信,我建议您使用HQSMS.com短信服务。在HQSMS代码中,您只需将变量$分配给更多用逗号分隔的数字。在单个POST请求中,可能有多达10000个数字。您可以在上找到更多详细信息和示例http://www.hqsms.com/help-api/https-api-interface/https-specification.HQSMS.com是一家高质量的短信提供商,为您提供具有开放有效期和全球覆盖范围的短信。