我正在构建一个简单的应用程序。它是在线订购系统的用户界面。
基本上,系统将像这样工作:
其他公司将他们的采购订单上传到我们的 FTP 服务器。这些订单是简单的 XML 文件(包含客户数据、地址信息、订购的产品和数量……)
我用 HTML5、jQuery 和 CSS 构建了一个简单的用户界面 — 所有这些都由 PHP 提供支持。
PHP 读取订单内容(使用 SimpleXML 的内置功能)并将其显示在网页上。
因此,它是一个网络应用程序,应该始终在办公室的浏览器中运行。 PHP 应用程序将显示所有订单的内容。每隔 15 分钟左右,该应用就会检查新订单。
如何遍历目录中的所有 XML 文件?
现在,我的应用程序能够读取单个 XML 文件的内容,并以一种漂亮的方式在页面上显示它。
我当前的代码如下所示:
// pick a random order that I know exists in the Order directory:
$xml_file = file_get_contents("Order/6366246.xml",FILE_TEXT);
$xml = new SimpleXMLElement($xml_file);
// start echo basic order information, like order number:
echo $xml->OrderHead->ShopPO;
// more information about the order and the customer goes here…
echo "<ul>";
// loop through each order line, and echo all quantities and products:
foreach ($xml->OrderLines->OrderLine as $orderline) {
"<li>".$orderline->Quantity." st.</li>\n".
"<li>".$orderline->SKU."</li>\n";
}
echo "</ul>";
// more information about delivery options, address information etc. goes here…
所以,这就是我的代码。很简单。它只需要做一件事——在屏幕上打印出所有订单文件的内容——这样我和我的同事就可以看到订单、确认订单并交付。
就是这样。
但现在 — 如您所见 — 我一次选择一个订单,位于订单目录中。但是我如何遍历整个订单目录,并读取并显示每个订单的内容(如上)?
我卡住了。我真的不知道您如何获取目录中的所有 (xml) 文件,然后对这些文件执行某些操作(比如读取它们并回显数据,就像我想的那样)。
最佳答案
试试 glob功能:
$files = glob("Order/*xml");
if (is_array($files)) {
foreach($files as $filename) {
$xml_file = file_get_contents($filename, FILE_TEXT);
// and proceed with your code
}
}
关于PHP:如何遍历目录中的每个 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485064/