如何使用php对xml数据使用post方法


How to use post method for xml data using php

我有一个向人们发送消息的api,还有url形式的api,它将用户登录详细信息和电话号码作为url的输入。一次我可以发送10条短信,但我想为批量短信实现它。

我正在尝试这个代码,但它只适用于10短信,如果我们提供了10个以上的手机号码,它就不起作用了,有人能告诉我在我的代码中犯了什么错误吗

代码:

$numbersarray=explode(",",$numbers);    //stores numbers as array
    /*XML API by Aditya*/
    $numbers_xml_string=""; //stores XML string of numbers and message
    foreach($numbersarray as $num){
        $numbers_xml_string.="<Message><To>".$num."</To><Text>".$text."</Text></Message>";
    }
    //XML string to be encoded
    $xmlstring="<SmsQueue><Account><User>".$user."</User><Password>".$password."</Password></Account><MessageData><SenderId>".$api_id."</SenderId><Gwid>1</Gwid><DataCoding>0</DataCoding></MessageData><Messages>".$numbers_xml_string."</Messages></SmsQueue>";
    $xmlstring=urlencode($xmlstring);//encode the string
    //prepare URL
    $url="http://login.smsgatewayhub.com/xmlapi/pushsms.aspx?data=".$xmlstring;
    echo "url".$url;

$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded'r'n",
        'method'  => 'POST',
        'content' => http_build_query($numbersarray),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
var_dump($result);

根据您的示例代码,可能有两个原因:

首先,您可能只有发送10条短信的权限。

第二,你每次只能发送10条信息。在这种情况下,你应该知道你应该等待的时间,并每次运行脚本向剩余的号码发送短信。