Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Работа с XML файлами. Хранение, обработка... [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 2 [3]   

> Без описания
dropoff
Отправлено: 29 Ноября, 2014 - 16:13:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Сейчас сделал форму так, что можно загрузить файл по ссылке, либо указать с компа.
с ссылкой понятно, можно просто по крону ее обработать за 5 минут.

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

При этом файл еще должен пройти валидацию. Не просто проверить, является ли он XML, а целостность блоков внутри.
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Ноября, 2014 - 20:08:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Крон должен вызывать пхп в CLI режиме, и, по умолчанию в php.ini для CLI нет лимита по времени и памяти. А вообще, пусть заказчик с таким аппетитом ищет и соответствующий аппетитный хостинг, впс/вдс/облако/дедик.
 
 Top
dropoff
Отправлено: 08 Января, 2015 - 10:04:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




DeepVarvar, вернусь к данной теме.

Возник такой вопрос.
В коде
PHP:
скопировать код в буфер обмена
  1. $xml = new SimpleXMLElement($xmlString);
  2. $i = 1;
  3. $c = 1;
  4. $max = 100;
  5. $out = '';
  6. $nodes = $xml->xpath('//nodename');
  7. $s = sizeof($nodes) - 1;
  8. foreach ($nodes as $k => $node) {
  9.     if ($i > $max || $k == $s) {
  10.         file_put_contents('file-' . $c . '.xml', '<root>' . $out . '</root>');
  11.         $i = 1;
  12.         $out = '';
  13.         $c += 1;
  14.     }
  15.     $out .= '<node>' . $node->asXML() . '</node>';
  16.     $i += 1;
  17. }


В $nodes у три элемента массива.
$s = sizeof($nodes) - 1; - возвращает 2
соответственно пишет в файл только 2 элемента.
пробовал что-то менять, переделывать, толку нет. либо не пишет вообще.

так или иначе, один элемент массива пропускает.
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Января, 2015 - 14:27:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




В трех соснах заблудился чтоли? )))
 
 Top
dropoff
Отправлено: 08 Января, 2015 - 14:41:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




если честно, да.
никак не пойму как исправить.
 
 Top
dropoff
Отправлено: 10 Января, 2015 - 07:45:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Нет. Я пробовал убирать - 1.
Дело в том, что чтобы я не делал, в файл пишет только по два элемента, либо далее корректно не работает.
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB