PHP-скрипт для выполнения в определенное время

есть ли простой способ заставить PHP-скрипт выполнять некоторый html в определенное время дня?

например, на моей домашней странице есть заголовок, и в определенное время я хочу иметь возможность добавить что-то прямо под заголовком, В этом случае iframe.

Я знаю, что все упомянутые заданий cron, но как это будет работать с этим? есть ли альтернатива? Его нет на всех хостингах

8 ответов


идея cron и scheudled заданий, кажется, противоречит тому, что вы на самом деле пытаетесь сделать. Если вы хотите, чтобы что-то отображалось (в данном случае iframe) только в определенное время, вы можете просто проверить время сервера во время каждого запроса и выбрать его отображение, если вы находитесь в пределах заданного периода времени.

что-то вроде этого произведет тот же эффект, что и задание cron, с большей детализацией, проверяя время в тот момент, когда requst сделанный.

<!-- Your Header here -->

<?php
$hour = date('G'); // 0 .. 23

// Show our iframe between 9am and 5pm
if ($hour >= 9 && $hour <= 17) { ?>
  <iframe .... ></iframe>
<?php } ?>

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

обновление: Дополнительные времена или типы сравнений могут быть указаны через что-то вроде

<?php 
$hour = date('G');
$day  = date('N'); // 1..7 for Monday to Sunday

if (($hour >= 5  && $hour <= 7)  // 5am - 7am
||  ($hour >= 10 && $hour <= 12) // 10am - 12 noon
||  ($hour >= 15 && $hour <= 19) // 3pm - 7pm
||  ($day == 5)                  // Friday
) { ?>
  <iframe...></iframe>
<?php } ?>

идея периодического добавления / удаления iframe из-под вашего заголовка с помощью серверного cron / планировщика задач задание намного сложнее, чем просто условно отображать его во время каждого запроса.

даже если у вас есть определенная задача, которая должна выполняться, например, периодически сгенерированный отчет, фактическое задание отображения результатов обычно не попадает на периодическую задачу. PHP-скрипт, ответственный за показ того, что iframe по-прежнему будет запрашивать базу данных во время запроса на любой новый контент для отображения и отображать его, если он найден, а не периодическую задачу каким-то образом изменять сценарий для включения iframe.


Если вы работаете в Linux, то у вас может быть задание cron.

Если вы находитесь в Windows, используйте планировщик задач.

Если вы находитесь в размещенной среде, вам нужно проверить, разрешено ли это.


cron в UNIX,launchd на OS X и Планировщик Задач на платформах Windows.


Если у вас нет доступа к заданиям cron или запланированным задачам на вашем сервере, вы можете использовать онлайн-службы, такие какhttp://pingability.com/ чтобы поразить ваш скрипт через определенные промежутки времени. Это не идеально, но вы можете создать какой-то секретный ключ и код, который гарантирует, что сценарий не запускается несколько раз в течение определенного периода времени. Может показаться немного хакерским, но я использовал его в живых системах для отправки ежедневных писем, и он отлично работает больше года сейчас.


в системах Unix cron это ваш лучший ставку.


используйте задание cron или что-то подобное, см. f.Я. задания cron или планировщик PHP


вы можете запланировать задачу как задание cron.


вы можете добавить PHP-скрипт на crontab для автоматического запуска скрипта через определенные интервалы. В командной строке введите crontab -e чтобы добавить запись в crontab.