Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Окт. 2012
Помог: 3 раз(а)
|
Есть csv файл каталога, который парсится с помощью скрипта ниже. Проблема в том, что локально (денвер) сей процесс занимает 1 - 2 секунды, а на хостинге страница грузится секунд 30 и выдает 504 ошибку. Однако, зайдя на сайт через несколько минут видно, что бд обновилась и все ок. В чем может быть причина? Возможно скрипт не оптимизирован и жрет много памяти. Если так, то подскажите где подправить.
PHP:
скопировать код в буфер обмена
function myIconv($arr) { else return iconv('UTF-8', 'CP1251', $arr); } $file = 'catalog.csv'; // проверяем обновился ли .csv файл каталога $result = sqlite_query($db,"SELECT * FROM parse_info WHERE id = '1' LIMIT 1"); $last = sqlite_fetch_array($result); // получаем метку времени последнего распарсенного файла if($cat_time != $last['filetime']){ // файл каталога обновился, парсим $cat_parse = true; } } include('parser.php'); # parser.php: if($cat_parse === true){ $array = @myIconv($array); unset($array[0 ]); // удаляем первый пустой элемент foreach($array as $key => $str){ if($item[2]=='БОЛТЫ') $item[2] = 'КРЕПЕЖ'; $result = sqlite_query($db,"SELECT * FROM prod_cats WHERE name = '".$item[2]."'"); } else { // добавляем категорию $cat_url = str2url($item[2]); $cat_add = sqlite_query($db,"INSERT INTO prod_cats ( parent_id, name, uri) VALUES ( '0', '".$item[2]."', '".$cat_url."' )"); $result = sqlite_query($db,"SELECT * FROM prod_cats WHERE uri = '".$cat_url."'"); // делаем выборку только что созданной категории (для добавления товара) } // проверяем есть ли уже этот товар в каталоге $result = sqlite_query($db,"SELECT * FROM prod_items WHERE name='".$item[0]."' AND parent_id='".$cat['id']."'"); sqlite_query($db,"UPDATE prod_items SET price = '".$item[3]."', icount = '".$item[1]."', date_add = '".$time."' WHERE name='".$item[0]."' AND parent_id='".$cat['id']."'"); } else{ // добавляем новый $add = sqlite_query($db,"INSERT INTO prod_items ( parent_id, name, text, price, icount, date_add, uri) VALUES ( '".$cat['id']."', '".$item[0]."', '', '".$item[3]."', '".$item[1]."', '".$time."', '".$url."')"); } } // удаляем старые товары sqlite_query($db,"DELETE FROM prod_items WHERE date_add NOT LIKE '".$time."'"); // обновляем время файла каталога sqlite_query($db,"UPDATE parse_info SET filetime = '".$cat_time."' WHERE id = '1'"); } }
|