Как указать лимит на количество импортируемых записей из XML

#1 2 апреля 2016 в 18:55
Сделал плагин на основе такого варианта парсера xml

(нагуглил)
  1. <?php
  2. $dom = new domDocument("1.0", "utf-8"); // Создаём XML-документ версии 1.0 с кодировкой utf-8
  3. $dom->load("users.xml"); // Загружаем XML-документ из файла в объект DOM
  4. $root = $dom->documentElement; // Получаем корневой элемент
  5. $childs = $root->childNodes; // Получаем дочерние элементы у корневого элемента
  6. /* Перебираем полученные элементы */
  7. for ($i = 0; $i < $childs->length; $i++) {
  8. $user = $childs->item($i); // Получаем следующий элемент из NodeList
  9. $lp = $user->childNodes; // Получаем дочерние элементы у узла "user"
  10. $id = $user->getAttribute("id"); // Получаем значение атрибута "id" у узла "user"
  11. $login = $lp->item(0)->nodeValue; // Получаем значение узла "login"
  12. $password = $lp->item(1)->nodeValue; // Получаем значение узла "password"
  13. /* Выводим полученные данные */
  14. echo "ID: $id<br />";
  15. echo "Логин: $login<br />";
  16. echo "Пароль: $password<br />";
  17. echo "-----------------------<br />";
  18. }
  19. ?>
для вывода на странице данных из партнерок.

Всё работает, но выводятся все записи, которые есть в xml.

Кто может, подскажите как установить лимит, что бы скажем за раз брать не более 10 записей.
Пока только додумался до того, что бы писать это в базу и от туда брать потом, но это лишний круг…
#2 2 апреля 2016 в 20:01
если за раз брать 10 записей (например сейчас с 1 по 10, в следующий раз с 10 по 20, и т.д.), то в любом случае где-то надо хранить эти данные (сессия, куки или бд), и потом повторно проходить весь круг с самого начала, только уже $i в цикле будет равно не 0 и надо поставить ограничитель в цикле, типа if ($i == $ii) break;, где $ii = $i(перед циклом)+10;.
#3 2 апреля 2016 в 20:22
Loadырь,
нет, нужно за раз верхние 10 и в след раз снова верхние 10 те же самые или если произошло обновление — другие.))
В данном случае, я сразу вывожу содержимое xml на страницу, но хотелось бы скажем не все 100 наименований а только 10.
#4 3 апреля 2016 в 09:56
Нил™, тогда просто, в цикле поставить условие
  1. if ($i > 10){break;}
#5 4 апреля 2016 в 15:14
Loadырь, да, это оно. Спасибо!)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.