Как открыть файл на удаленном сервере с помощью XML Reader в php? - PullRequest
1 голос
/ 14 ноября 2011

У меня есть огромный XML-файл (~ 85 мес.), И я хотел бы открыть его с помощью XML Reader (тогда мой сценарий прочитал отдельные строки).Я загрузил его на свой ПК, и мой скрипт работает (используя Wamp).

Теперь я хотел бы сделать то же самое в Интернете.Логин сервера aaa и пароль bbb (конечно, это пример).

Я попробовал следующее утверждение:

$xml = new XMLReader();
if ($xml->open('ftp://aaa:bbb@ftp.website.com/myfile.xml')){
    echo 'OK';
}

while($xml->read()){
    // my script here... 
}

Itкажется, я не прав, потому что мой веб-браузер показывает мне, что страница слишком длинная для загрузки.Каков хороший способ продолжить?Или я упустил что-то важное?

Ответы [ 4 ]

4 голосов
/ 14 ноября 2011

Поскольку рассматриваемый файл является XML, нецелесообразно частично загружать его, поскольку он, вероятно, нарушит структуру xml, что приведет к сбою синтаксического анализатора.

Вы можете получить cronjob для периодического извлечения файла и открыть его из локального местоположения на сервере или один раз получить и кэшировать его локально, чтобы он ускорил последующие запросы.

0 голосов
/ 14 ноября 2011

Я бы использовал curl для подключения к FTP-серверу и загрузки файла.

http://php.net/manual/en/book.curl.php

0 голосов
/ 14 ноября 2011

Вероятно, лучше всего сначала загрузить файл на сервер, используя PHP FTP-функции , а затем открыть файл локально.Я бы не стал полагаться на использование FTP в библиотеке XML, таким образом вы получите больше гибкости.

0 голосов
/ 14 ноября 2011

http://davidwalsh.name/increase-php-script-execution-time-limit-ini_set Время выполнения по умолчанию составляет 20 секунд или 30, увеличьте его до 1 минуты и повторите попытку

...