簡體   English   中英

如果我要從數據庫中查詢,我如何將數組中的數據 foreach 到 xmls 標簽以便將消息發送到多個數字

[英]How can i foreach data from my array to an xmls tags so as to send message to multiple numbers if i would query from database

我有這個在我的國家/地區提供 SMS API 的供應商,在向單個用戶發送短信時一切正常,當我需要從數據庫發送給多個用戶時出現問題,他們使用 XML 通過對數字進行硬編碼發送給多個用戶在xml ,每當我嘗試從我的數組中 foreach 值時,它都會給出未定義變量的錯誤。

我試過使用print_r() , implode(",",$var) , json_encode()他們似乎工作,但是當我仍然循環時我得到錯誤

 public function multi(){

             define ("URL_API_DOMAIN", "http://www.bongolive.co.tz/api/broadcastSMS.php");
        $sendername = "mysendername";
        $username = "myusername";
        $password = "mypassword";
        $apikey = "mykey";
        $numbers=array("+255*********","+255********");
        $number=print_r($numbers);
        // foreach ($numbers as $key => $numb) {
        //  echo $number = $numb;
        // }
        // return $number;
        $callbackURL = "";
        $messageXML = "
<Broadcast>
    <Authentication>
        <Sendername>".$sendername."</Sendername>
        <Username>".$username."</Username>
        <Password>".$password."</Password>
        <Apikey>".$apikey."</Apikey>
    </Authentication>
        <Message>
            <Content>Test broad cast from eboaard Message, Ukipata hii text nijulishe MAKAVELI</Content>
            <Receivers>

            foreach($number as $numb){
                <Receiver id=''>".$numb."</Receiver>
            }
            </Receivers>
                <Callbackurl>".$callbackURL."</Callbackurl>
        </Message>
 </Broadcast>";
 $data = array('messageXML' => $messageXML);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, URL_API_DOMAIN);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 4);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

  $response = curl_exec($ch);
  echo "response = $response ";
        }

}

//their codes example
<?php
        define ("URL_API_DOMAIN", "http://www.bongolive.co.tz/api/broadcastSMS.php");
        $sendername = "Bongo Live";
        $username = "testaccount";
        $password = "123456";
        $apikey = "c4a12fa8-ed6f-11df-a1f1-00181236674f";
        $callbackURL = "http://www.yourdomain.com/sms/dlr.php";
        $messageXML = "
<Broadcast>
    <Authentication>
        <Sendername>".$sendername."</Sendername>
        <Username>".$username."</Username>
        <Password>".$password."</Password>
        <Apikey>".$apikey."</Apikey>
    </Authentication>
        <Message>
            <Content>Test Message</Content>
            <Receivers>
                <Receiver id='7772237998'>255655123123</Receiver>
            </Receivers>
                <Callbackurl>".$callbackURL."</Callbackurl>
        </Message>
 </Broadcast>";
 $data = array('messageXML' => $messageXML);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, URL_API_DOMAIN);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 4);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

  $response = curl_exec($ch);
  echo "response = $response ";
 ?>

我希望向我的兩個號碼發送消息,但我收到ErrorException (E_NOTICE) Undefined variable: numb error ,我使用的是 Laravel 控制器,我對 xmls 了解不多

改變這個:

$messageXML = "
<Broadcast>
    <Authentication>
        <Sendername>".$sendername."</Sendername>
        <Username>".$username."</Username>
        <Password>".$password."</Password>
        <Apikey>".$apikey."</Apikey>
    </Authentication>
    <Message>
        <Content>Test broad cast from eboaard Message, Ukipata hii text nijulishe MAKAVELI</Content>
        <Receivers>

        foreach($number as $numb){
            <Receiver id=''>".$numb."</Receiver>
        }
        </Receivers>
            <Callbackurl>".$callbackURL."</Callbackurl>
    </Message>
 </Broadcast>";

對此:

$messageXML = "<Broadcast><Authentication>".
              "<Sendername>{$sendername}</Sendername>".
              "<Username>{$username}</Username>".
              "<Password>{$password}</Password>".
              "<Apikey>{$apikey}</Apikey></Authentication>".
              "<Message><Content>Test broad cast from eboaard ".
              "Message, Ukipata hii text nijulishe MAKAVELI</Content><Receivers>";

foreach($number as $numb) {
    $messageXML .= "<Receiver id=''>{$numb}</Receiver>";
}

$messageXML .= "</Receivers><Callbackurl>{$callbackURL}</Callbackurl></Message></Broadcast>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM