Как сохранить данные по порядку в json файл?

171
18 сентября 2017, 04:51

Заказывал парсер, мне его написали, все здорово, спарсенное сохраняется в json базу и выводится на сайте.

В том же порядке, что и в оригинале, на моем сайте выводится только $db_new, все остальное выводится в разброс, не по порядку.

<?php 
set_time_limit(0);
include __DIR__.'/config.php';
include __DIR__.'/libs/parser.class.php';
include __DIR__.'/libs/database.class.php';
$parser = new Parser(__DIR__.'/auth.cookie');
$db_new = new DataBase(__DIR__.'/db_new.json');
$db_feat = new DataBase(__DIR__.'/db_feat.json');
$db_day = new DataBase(__DIR__.'/db_day.json');
$db_days = new DataBase(__DIR__.'/db_days.json');
$db_news = new DataBase(__DIR__.'/db_news.json');
// Проверка авторизации. Если уже авторизован, то идет дальше, нет - авторизуется по логину и паролю
if(!$parser->checkAuth()) {
  $parser->auth(USER, PASS);
  if(!$parser->checkAuth()) {
    die('Can\'t auth');
  }
}
// СОХРАНЯЕТ ПО ПОРЯДКУ
$items = $db_new->all();
foreach ($items as $id => $item) {
  try {
    $info = $parser->getItem($id);
    $db_new->replace($id, $info);
  } catch(Exception $e) {
    $db_new->remove($id);
  }
  sleep(SLEEP_CHECK);
}
for($page = 10; $page >= 1; $page--) {
  // Загрузка
  $items = $parser->getMarketplace('wares', $page);
  foreach ($items as $item) {
    $db_new->add($item['id'], $item); // Добавляем в базу
  }
  sleep(SLEEP);
}
$db_new->save();

// СОХРАНЯЕТ НЕ ПО ПОРЯДКУ

$items = $db_feat->all();
foreach ($items as $id => $item) {
  try {
    $info = $parser->getItem($id);
    $db_feat->replace($id, $info);
  } catch(Exception $e) {
    $db_feat->remove($id);
  }
  sleep(SLEEP_CHECK);
}
for($page = 5; $page >= 1; $page--) {
  // Загрузка 
  $items = $parser->getMarketplace('feat', $page);
  foreach ($items as $item) {
    $db_feat->add($item['id'], $item); // Добавляем в базу
  }
  sleep(SLEEP);
}
$db_feat->save();
// СОХРАНЯЕТ НЕ ПО ПОРЯДКУ
$items = $db_day->all();
foreach ($items as $id => $item) {
  try {
    $info = $parser->getItem($id);
    $db_day->replace($id, $info);
  } catch(Exception $e) {
    $db_day->remove($id);
  }
  sleep(SLEEP_CHECK);
}
for($page = 5; $page >= 1; $page--) {
    // Загрузка 
  $items = $parser->getMarketplaceTrends('Day', $page);
  foreach ($items as $item) {
    $db_day->add($item['id'], $item); // Добавляем в базу
  }
  sleep(SLEEP);
}
$db_day->save();
// СОХРАНЯЕТ НЕ ПО ПОРЯДКУ
$items = $db_days->all();
foreach ($items as $id => $item) {
  try {
    $info = $parser->getItem($id);
    $db_days->replace($id, $info);
  } catch(Exception $e) {
    $db_days->remove($id);
  }
  sleep(SLEEP_CHECK);
}
for($page = 5; $page >= 1; $page--) {
    // Загрузка 
  $items = $parser->getMarketplaceTrends('days', $page);
  foreach ($items as $item) {
    $db_days->add($item['id'], $item); // Добавляем в базу
  }
  sleep(SLEEP);
}
$db_days->save();
// СОХРАНЯЕТ НЕ ПО ПОРЯДКУ
$items = $db_news->all();
foreach ($items as $id => $item) {
  try {
    $info = $parser->getItem($id);
    $db_news->replace($id, $info);
  } catch(Exception $e) {
    $db_news->remove($id);
  }
  sleep(SLEEP_CHECK);
}
for($page = 5; $page >= 1; $page--) {
    // Загрузка 
  $items = $parser->getMarketplace('news', $page);
  foreach ($items as $item) {
    $db_news->add($item['id'], $item); // Добавляем в базу
  }
  sleep(SLEEP);
}
$db_news->save();
echo 'Done';

Подскажите, в чем проблема, может нарушена логика в скрипте?

Честно говоря, ранее все сохранялось в одну базу, это я уже сам раскидал по 5 базам... Раньше все было в одном

for($page = 5; $page >= 1; $page--) {

READ ALSO
Вывести новости с названиями категорий

Вывести новости с названиями категорий

Поставил себе задачку по php и mysql вывести список новостей и название категорий, к которым относятся эти самые новости

163
Как Ускорить Запрос к БД?

Как Ускорить Запрос к БД?

У меня есть таблица на 30500 записейВ ней находятся города, районы, и всякие населенные пункты

166
Как прописать ссылку в htaccess?

Как прописать ссылку в htaccess?

Подскажите как прописать ссылку в htaccessне переключается постраничный вывод из файла , в браузере выводится ссылка, а на странице не переключается

191
разбор многомерного массива через foreach

разбор многомерного массива через foreach

Начинаю, изучать php и хочу сделать логирование ошибокПытаюсь разобрать функцию debug_backtrace(), и не могу понять из-за чего он не хочет брать [0] массив...

155