include('vars.inc.php');
include('function.php');
$conn=db_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASSWORD, $MYSQL_CHARSET);
if(!$conn)
{
echo "Нет соединения с БД";
exit();
}
db_select($MYSQL_DB_NAME, $conn);
$url = 'http://news.auto.ru/rss/category_rusnews.rss';
$rss = simplexml_load_file($url);
$news = 0;
foreach ($rss->channel->item as $item) {
$item->title = iconv("UTF-8","windows-1251",$item->title);
$item->link = iconv("UTF-8","windows-1251",$item->link);
$item->description = iconv("UTF-8","windows-1251",$item->description);
if(!db_query_count("SELECT COUNT(`Message_ID`) FROM `Message71` WHERE `url`='".mysql_value($item->link)."'", $conn))
{
$query = db_query("INSERT INTO `Message71` VALUES (NULL, 1, 99, 123, 1, '', 1, NULL, NULL, '127.0.0.1', 'Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.6.30 Version/10.60', 0, '".date('Y-m-d H:i:s', time())."', '".date('Y-m-d H:i:s', time())."', 0, NULL, NULL, NULL, '".date('Y-m-d H:i:s', strtotime($item->pubDate))."', '".mysql_value($item->title)."', '".mysql_value($item->description)."', '".mysql_value($item->description)."', '".mysql_value($item->link)."')", $conn);
$news++;
}
}
echo 'Added '.$news.' News';
Вот скрипт для сбора новостей. Запущен в cron с выполнением раз в 30 минут.
Сайт перестал работать через несколько дней. Хостер сказал что причина в превышении лимита запущенных одновременно процессов. Получается скрипт не выгружался из памяти. Не совсем понятно по какой причине он не выгружался, не было бы вопросов если бы у меня к примеру было бы прописано
set_time_limit(0);, но а тут же он должен как я понимаю автоматически обрубиться при превышении лимита 30 или 60 секунд (базовая настрока в php.ini).
Или тут есть еще какие-либо тонкости?