Ошибка копирования xml

Обсуждение сервиса товарной рекламы Микс-Товары
Ответить
Lexx
Сообщения: 12
Зарегистрирован: 11 июл 2010, 20:00

Ошибка копирования xml

Сообщение Lexx » 28 июл 2010, 08:51

Привет всем! Помогите пожалуйста разобраться с копированием xml файла на хостинг. Раньше использовал copy. Сейчас реализовано через stream_copy_to_stream:

$stream = 'http://price.mixmarket.biz/mixml.plx?id=xxxxxxxxxx';
$src = fopen($stream, 'r');
$dest = fopen(BASE_DIR . 'temp.xml', 'w+');
result_copy = stream_copy_to_stream($src, $dest) . " bytes copied to file \n";

Примерно так оформлен код, единственное, что приходится добавлять кучу циклов и проверок, потому как с первого раза не получается подключиться к файлу. И Скачивается тоже не целиком. Сначала несколько десятков килобайт, на следующий цикл несколько сотен килобайт. Затем пару мегабайт, несколько десятков мегабайт и т.д.. В конечном итоге не известно целиком скачался файл или нет. Откуда можно узнать сколько весит xml со всеми подключенными категорями? И почему вообще такие глюки возникают с копированием? С copy() та же самай проблема. Может кто-нибудь поделится своим рабочим кодом?

Markety
Сообщения: 67
Зарегистрирован: 05 окт 2007, 12:54

Сообщение Markety » 28 июл 2010, 15:06

Можно забирать xml с помощью wget (имеется на *nix-хостингах), если есть возможность записать команду в cron.
Например:
/usr/local/bin/wget -P /каталог_куда_положить_файл -O как_назвать_файл.xml 'http://price.mixmarket.biz/mixml.plx?id=код_источника'

Узнать, скачался ли файл целиком, можно, если посмотреть конец файла. Если там присутствует </mixml>, значит, принято целиком

Lexx
Сообщения: 12
Зарегистрирован: 11 июл 2010, 20:00

Сообщение Lexx » 28 июл 2010, 17:08

К сожалению wget нет или отключен на хостинге. Выбросил такую ошибку:
/bin/sh: /usr/local/bin/wget: No such file or directory

Еще есть варианты?

ilyaska
Сотрудник Миксмаркета
Сотрудник Миксмаркета
Сообщения: 79
Зарегистрирован: 22 янв 2007, 17:01

Сообщение ilyaska » 28 июл 2010, 18:54

curl

Lexx
Сообщения: 12
Зарегистрирован: 11 июл 2010, 20:00

Сообщение Lexx » 28 июл 2010, 20:02

Да, спасибо большое. curl помог

Ответить