使用 glob 函数循环 xml 个文件仅循环文件夹中的最后一个文件

Looping xml files using glob function only loops the last file in the folder

我试过搜索,但找不到真正的答案,所以我想 post 换一个新问题。

我有一个包含多个 xml 文件的文件夹。我想遍历所有这些文件。

这是我当前的代码:

<?php
  $files = glob("visitkort/*xml");
    if (is_array($files)) {

     foreach($files as $filename) {
        $xmlstr = file_get_contents($filename, FILE_TEXT);
     }



    }
    $visitkort = new SimpleXMLElement($xmlstr);

    foreach ($visitkort->person as $person) {
           echo '<article class="productInfo"><a href="redigera.php?id="><div> <p class="price">', $person->namn, '</p><p class="productContent">', $person->titel,  '</p></div></a> </article>', PHP_EOL;
        }

?>

效果很好,只是它只会列出文件夹中的最后一个文件(例如,我有三个名为“1.xml”、“2.xml”和“3.xml 的文件",只会列出文件 "3.xml" 中的信息)而不是所有文件。 我做错了什么,我该如何解决?

此致, 卡米拉

您需要重新组织一下代码,因此 foreach 循环处理所有三个文件。

<?php

$files = glob("visitkort/*xml");
if (is_array($files)) {

    foreach ($files as $filename) {
        $xmlstr = file_get_contents($filename, FILE_TEXT);
        $visitkort = new SimpleXMLElement($xmlstr);

        foreach ($visitkort->person as $person) {
            echo '<article class="productInfo"><a href="redigera.php?id="><div> <p class="price">', $person->namn, '</p><p class="productContent">', $person->titel, '</p></div></a> </article>', PHP_EOL;
        }
    }
}