2009-12-30 2 views
6

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

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

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

+0

Извините, как сценарий «выполняет какой-то html»? –

+2

@Ben Я думаю, что он означает «сгенерировать» некоторый html. –

ответ

11

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

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

<!-- 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 несколько раз в день, или чек сценария независимо от внешнего состояния вы хотите использовать для управления отображением вашего фрейма.

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

<?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 снизу вашего заголовка с серверной стороны хрон/планировщик задач работа намного сложнее, чем просто условное отображение ее во время каждого запроса.

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

+0

Именно то, что я искал, но я только делаю переднюю часть, поэтому я все еще теряю при добавлении лишних времен в скрипт. – 2009-12-30 21:32:13

2

В системах Unix cron - ваш лучший выбор.

6

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

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

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

+3

Если на хосте (v) не разрешено, вы можете написать PHP-скрипт командной строки, который запускается как демон и выполняет сценарии в заданное время. Последнее средство. – 2009-12-30 16:30:40

+0

Или вы можете создать веб-сервис, который запускает его и вызывает это из поля, которое у вас есть. – jeffa00

0

Вы можете назначить задачу как задание cron.

0

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

4

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

+0

Я попробовал, но ссылка, похоже, не работает – 2009-12-30 16:44:28

+2

http://www.siteuptime.com/ и https://www.websitepulse.com/, похоже, предлагают одинаковые услуги. – sjobe

Смежные вопросы