2012-02-08 57 views
0

我有一個數字的數據庫,我想用短信提供商發送短信。我的代碼與sms 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!"; 


} 

回答

1
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"); 

} 
+0

非常感謝Arkouda,我感到非常愚蠢,因爲我確信我嘗試過,並沒有奏效 - 他一直在看屏幕太久! – Textus 2012-02-08 18:12:20

0

如果SMS提供不允許你通過API接口發送羣發短信,我建議你HQSMS.com SMS服務。 在HQSMS代碼中,您只需將變量$分配給更多以逗號分隔的數字。在單個POST請求中可能有多達10000個數字。更多的細節和例子,你可以在http://www.hqsms.com/help-api/https-api-interface/https-specification找到。 HQSMS.com是一家高品質的短信提供商,爲您提供開放式有效性和全球覆蓋率。