PHP: Как мне пройти через каждый XML-файл в каталоге? - PullRequest
3 голосов
/ 21 марта 2010

Я создаю простое приложение. Это пользовательский интерфейс для системы онлайн-заказов.

По сути, система будет работать так:

  1. Другие компании загружают свои заказы на наш FTP-сервер. Эти заказы представляют собой простые XML-файлы (содержащие такие данные, как данные о клиентах, адресную информацию, заказанные продукты и количество…)

  2. Я создал простой пользовательский интерфейс в HTML5, jQuery и CSS - все работает на PHP.

  3. PHP читает содержимое заказа (используя встроенные функции SimpleXML) и отображает его на веб-странице.

Итак, это веб-приложение, которое всегда должно работать в браузере в офисе. Приложение PHP будет отображать содержимое всех заказов. Каждые пятнадцать минут или около того приложение будет проверять наличие новых заказов.

Как перебрать все 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…

Итак, это мой код. Довольно просто Для этого нужно только одно - распечатать содержимое всех файлов заказов на экране, чтобы я и мои коллеги могли увидеть заказ, подтвердить его и доставить.

Вот и все.

Но сейчас - как вы можете видеть - я выбираю один заказ за раз, расположенный в каталоге заказов. Но как мне просмотреть весь каталог Order, прочитать и отобразить содержимое каждого заказа (как указано выше)?

Я застрял. Я не знаю, как вы получаете все (xml) файлы в каталоге, а затем что-то делаете с файлами (например, читаете их и выводите данные, как я хочу).

-> Я бы очень признателен за помощь. Я не очень опытен в программировании на PHP / на стороне сервера, поэтому, если бы вы могли помочь мне здесь, я был бы очень благодарен.

Заранее большое спасибо!

// Björn (знаменитость у меня dot com)

1 Ответ

10 голосов
/ 21 марта 2010

добро пожаловать в SO.

Попробуйте функцию 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
     }

}
...