PHP импорт XML-ленты, упакованной в zip-файл - PullRequest
0 голосов
/ 15 июля 2011

Я хочу автоматизировать следующее: Один раз в день мой cronjob запускает скрипт PHP, который получает сжатый XML-файл по URL-адресу.

Как лучше всего это сделать?Есть ли способ напрямую прочитать файл XML из zip-файла?

Сейчас я просто загружаю zip-файл на сервер и вручную распаковываю его позже в тот же день.Есть идеи?Все предложения приветствуются.

Ответы [ 2 ]

3 голосов
/ 15 июля 2011

Вы можете использовать PHP ZipArchive в сочетании с cURL для загрузки и чтения zip-файла.

Кроме того, класс ZipArchive имеет метод с именем getStream , который позволяет затем использовать fread для доступа к содержимому без явного извлечения файла.

Единственная проблема, которую я вижу, если этот zip-файл нужно где-то сохранить, чтобы библиотека PHP прочитала его. Но, учитывая, что вы уже делаете это, это не должно быть проблемой.

Если вам нужен пример, оставьте мне комментарий, и я могу написать на него.

1 голос
/ 15 июля 2011

Существует коллекция zip-функций , которые можно использовать в PHP.

Проблема в том, что для этого требуется, чтобы сжатый файл существовал на сервере (а не толькозагружается с внешнего сервера где-нибудь, используя, например, $file = file($url);).

Если вы хотите сохранить файл на своем сервере, вы можете использовать $zip = zip_open($filename) и zip_read($zip) для обработки файла zip.

...