我已经使用foreach循环在tab之间提取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>";
答案 0 :(得分:1)
试试这个:
$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>";
答案 1 :(得分:0)
字符串连接的确切格式显示在PHP manual under string operators中。但是我不会直接详细说明这些,因为通过连接字符串来限制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
的后续内容,因此您需要知道如何从 SimpleXMLElement 中获取XML作为字符串以使示例完整。这是:
$data = $xml->asXML();
如果您想了解更多信息,请参阅SimpleXML Basic Usage guide in the manual。