如何在评论部分使用循环

时间:2014-12-31 06:41:59

标签: php xml foreach comments

我已经使用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>";

2 个答案:

答案 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