【问题标题】:PhP foreach loop for an XML file用于 XML 文件的 PhP foreach 循环
【发布时间】:2017-01-13 18:52:26
【问题描述】:

我正在尝试将位置作为变量在 page.php 上使用。它将开始将选项加载到选择框中大约 5 秒钟,我实际上将能够看到这些选项,然后它全部删除并且我有一个空的选择框。这是 PHP 代码:

<?php
$xml = simplexml_load_file("file.xml");
echo '<form method="get" action="page.php"><select name="place" id="place">';
foreach($xml as $banana)
{
    if(isset($banana->id))
    {
        $id = $banana->id;
        $string = $banana->state . " - " . $banana->name;
        echo '<option value="' . $id . '">' . $string . '</option>';

    }
}
echo "</select>";
echo '<input type="submit" /></form>';

?>

我确定我的 XML 格式正确,但 XML 文件有超过 2500 个条目,每个条目看起来像这样:

<container>
    <id>theId</id>
    <state>theState</state>
    <name>theName</name>
</container>

任何想法为什么不会加载?

注意:某些项目在 XML 文件中的 id 为空,我不想包含这些文件,这就是我检查以确保已设置的原因。

【问题讨论】:

  • 如果不是创建一个选择框,您只是 print_r($xml); 是否显示所有条目?
  • @Ray 是的,它们都显示为 print_r($xml);
  • 另外,如果您将数据粘贴在 HTML 中,您将希望确保其安全,以防 id 或 name 包含可能弄乱 HTML 的字符。 echo '&lt;option value="' . htmlspecialchars($id) . '"&gt;' . htmlspecialchars($string) . '&lt;/option&gt;';
  • @Ray XML 文件中的网络安全,所以我不需要担心,所有内容都是由我而不是用户添加到 XML 文件中的。不过,我真的很感谢您的反馈。
  • 选择框上是否有任何 Javascript 绑定?禁用javascript并刷新,纯html选择框还死机吗?

标签: php html xml


【解决方案1】:

几件事

  • 禁用任何 javascript 并重试 - 某些内容可能会绑定到覆盖选择框或其中元素的 ID。
  • 您通常希望在将拉入的文本插入 HTML 文档之前对其进行正确转义,以防万一其中有 &lt;&gt;

尝试以下方法:

   echo '<option value="' . htmlspecialchars($id) . '">' . htmlspecialchars($string) . '</option>'; 

【讨论】:

    猜你喜欢
    • 2012-11-19
    • 2015-02-26
    • 2016-09-26
    • 2012-07-19
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2012-05-23
    相关资源
    最近更新 更多