PDA

Просмотр полной версии : Запуск скрипта с определенным периодом


serg-php
03.01.2010, 23:57
Имею скрипт вывода информации через инклуд с определенным интервалом:


<?
$filetime=lstat('content.txt'); // Получаем массив информации о файле
$cur=time()-$filetime[9]; // Получаем время прошедшее с последней модификации файла
if ($cur>86400) // Если прошло больше 2500 секунд, то делаем запрос к БД
{
$f=fopen('content.txt','w');

// Все echo заменяем на $out.=
// Чтобы собрать в эту переменную все данные которые надо выводить

$host = ""; // MySQL server
$user_db = ""; // MySQL пользователь
$pass_db = ""; // MySQL пароль
$dbase = ""; // MySQL база данных
$dtable = ""; // Таблица в базе данных

error_reporting(E_ALL);

mysql_connect ($host, $user_db, $pass_db);
mysql_select_db($dbase);

$sql = "SELECT link_id, images, catid, rand() AS rnd FROM $dtable WHERE catid=499 GROUP BY link_id ORDER BY rnd LIMIT 6";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
$out="";
if ((!$rows) || ($rows < 1)) {$out.="Результатов НЕТ!!!";}
else {
$out.="Заголовок моей инфы";
while(list($id_link, $images) = mysql_fetch_row($result)) {
$out.="<a href='$id_link.html'><img src='$images'></a>";
}
}
$out.="Конец моей инфы";
fwrite($f,$out);fclose($f); // Записываем в файл
}

echo file_get_contents('content.txt'); // Всегда выводим содержимое файла



?>



Как сделать, чтобы скрипт запускался сам с определенным интервалом без инклуда?

P.S. Крон хостинга не предлагать

Dr1ver
04.01.2010, 00:06
Может быть вечный цикл while(1) где нибудь sleep(секунд) и посмотри ignore_user_abort

LStr1ke
04.01.2010, 00:10
<?php // функция запуска скрипта через определенный интервал времени (аналог cron)
ignore_user_abort(); // запускаем скрипт в фоновом режиме
set_time_limit(0); // запускаем скрипт всегда
$interval=60*15; // интервал в секундах (сейчас установлено 15 минут)
do
{
// собсно пишем сам скрипт..... тот, который хотим выполнять каждые 15 минут, например отправку письма с ругательствами плохому человеку или что-то по-сложнее (вобщем все зависит от вашей фантазии)...
sleep($interval); // инициируем интервал запуска скрипта
}
while(true);
?>

(c) Google

serg-php
04.01.2010, 00:14
Благодарю! Пробую!

запускаем скрипт всегда

Большая ли нагрузка на сервер создается при этом?

А как быть с safe mode?

Zedi
04.01.2010, 00:31
нагрузка будет большая, некоторые хосты это не любят)0 safe_mode = off

serg-php
04.01.2010, 00:37
Такой вариант не подходит!

xxx-xxx
04.01.2010, 05:22
http://cronjob.ru

ReduKToR
04.01.2010, 09:50
В панели хостинга найти вкладку CRON и установи нужное значение и путь до скрипта.
Или как написано постом выше - ты может воспользоваться, бесплатным сервисом cronjob.ru

suser
04.01.2010, 11:31
Инклудь скрипт другим скриптом с др хостинга и обрывый соединение, а другой через паузу пусть запускает первый,

или

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

Всё зависит от паузы

serg-php
05.01.2010, 01:38
В панели хостинга найти вкладку CRON и установи нужное значение и путь до скрипта.

Видимо, это оптимальный вариант!

olishort
05.01.2010, 01:54
извращенский вариант. Cделай изображение при помощи gd библиотеки и вставь в подпись :D