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

Discussion in 'PHP' started by serg-php, 3 Jan 2010.

  1. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Имею скрипт вывода информации через инклуд с определенным интервалом:

    PHP:
    <?
    $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. Крон хостинга не предлагать
     
  2. Dr1ver

    Dr1ver Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    Может быть вечный цикл while(1) где нибудь sleep(секунд) и посмотри ignore_user_abort
     
  3. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    PHP:
    <?php // функция запуска скрипта через определенный интервал времени (аналог cron)
        
    ignore_user_abort(); // запускаем скрипт в фоновом режиме
        
    set_time_limit(0); // запускаем скрипт всегда
        
    $interval=60*15// интервал в секундах (сейчас установлено 15 минут)
        
    do
            {
                   
    // собсно пишем сам скрипт..... тот, который хотим выполнять каждые 15 минут, например отправку письма с ругательствами плохому человеку или что-то по-сложнее (вобщем все зависит от вашей фантазии)...
    sleep($interval); // инициируем интервал запуска скрипта
            
    }
    while(
    true);
    ?>
    (c) Google
     
  4. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Благодарю! Пробую!

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

    А как быть с safe mode?
     
    #4 serg-php, 3 Jan 2010
    Last edited: 3 Jan 2010
  5. Zedi

    Zedi Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    316
    Likes Received:
    120
    Reputations:
    13
    нагрузка будет большая, некоторые хосты это не любят)0 safe_mode = off
     
  6. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Такой вариант не подходит!
     
  7. xxx-xxx

    xxx-xxx Member

    Joined:
    12 Nov 2006
    Messages:
    17
    Likes Received:
    7
    Reputations:
    0
    http://cronjob.ru
     
    1 person likes this.
  8. ReduKToR

    ReduKToR Active Member

    Joined:
    5 Jan 2009
    Messages:
    257
    Likes Received:
    179
    Reputations:
    4
    В панели хостинга найти вкладку CRON и установи нужное значение и путь до скрипта.
    Или как написано постом выше - ты может воспользоваться, бесплатным сервисом cronjob.ru
     
  9. suser

    suser Member

    Joined:
    30 Dec 2009
    Messages:
    35
    Likes Received:
    5
    Reputations:
    0
    Инклудь скрипт другим скриптом с др хостинга и обрывый соединение, а другой через паузу пусть запускает первый,

    или

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

    Всё зависит от паузы
     
  10. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Видимо, это оптимальный вариант!
     
  11. apolon47

    apolon47 Banned

    Joined:
    13 Apr 2009
    Messages:
    119
    Likes Received:
    14
    Reputations:
    4
    извращенский вариант. Cделай изображение при помощи gd библиотеки и вставь в подпись :D
     
    1 person likes this.