我已经使用foreach循环在选项卡之间提取多个user_phone值,但是它会产生错误,我不知道确切的格式。
$result = $Admin->select($Admin->newsletter_subscribers,'',"");
print_r($result['user_phone']);
$data="<message-submit-request>
<username>@@@@@@@</username>
<password>#######</password>
<sender-id>$$$$$$</sender-id>".
foreach($result as $row)
{
"<to>".$row['user_phone']."</to>"
}."<MType></MType>
<message-text>
<text>hi test message 1</text>
</message-text>
</message-submit-request>";发布于 2014-12-31 06:44:48
试试这个:
$result = $Admin->select($Admin->newsletter_subscribers,'',"");
print_r($result['user_phone']);
$data = "<message-submit-request>
<username>@@@@@@@</username>
<password>#######</password>
<sender-id>$$$$$$</sender-id>";
foreach($result as $row)
{
$data .= "<to>".$row['user_phone']."</to>";
}
$data .= "<MType></MType>
<message-text>
<text>hi test message 1</text>
</message-text>
</message-submit-request>";发布于 2014-12-31 09:51:54
字符串连接的确切格式显示在PHP manual under 中。但是,我将不详细说明这些,因为通过串连字符串来验证XML是个坏主意。例如,输入中有像<、>和&这样的字符,您会遇到许多问题。
对于您的用例,SimpleXMLElement是一个方便的对象,它允许您以更完整的方式进行相同的操作:
// create XML document based on boilerplate
$xml = new SimpleXMLElement('
<message-submit-request>
<username>@@@@@@@</username>
<password>#######</password>
<sender-id>$$$$$$</sender-id>
<MType></MType>
<message-text>
<text>hi test message 1</text>
</message-text>
</message-submit-request>
');
// add elements where appropriate
foreach($result as $row)
{
$xml->addChild('to', $row['user_phone']);
}这将确保所有值都被正确编码。此外,当您进一步处理数据(例如,输出数据)时,这可能对您带来很大的好处。
但是,您还没有在问题中显示$data的后续工作,因此您需要知道如何从$data作为字符串获取XML以便使示例完整。下面是:
$data = $xml->asXML();如果你想了解更多的话,也可以看看 guide in the manual。
https://stackoverflow.com/questions/27717262
复制相似问题