如何使用php将post方法用于xml数据

时间:2015-02-26 04:49:03

标签: php arrays xml

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

我正在尝试使用此代码,但它仅适用于10sms,如果我们提供的手机号码超过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);

1 个答案:

答案 0 :(得分:0)

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

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

其次,您每隔一段时间只能发送10条消息。在这种情况下,你应该知道你应该等待的时间和每次运行你的脚本以将短信发送到剩余的数字。