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 или запланированным задачам на вашем сервере, вы можете использовать онлайн-службы, такие какhttp://pingability.com/ чтобы поразить ваш скрипт через определенные промежутки времени. Это не идеально, но вы можете создать какой-то секретный ключ и код, который гарантирует, что сценарий не запускается несколько раз в течение определенного периода времени. Может показаться немного хакерским, но я использовал его в живых системах для отправки ежедневных писем, и он отлично работает больше года сейчас.
используйте задание cron или что-то подобное, см. f.Я. задания cron или планировщик PHP
вы можете добавить PHP-скрипт на crontab для автоматического запуска скрипта через определенные интервалы. В командной строке введите crontab -e
чтобы добавить запись в crontab.