2009-12-30 20 views
6

Gibt es eine einfache Möglichkeit, ein PHP-Skript zu bestimmten Zeiten des Tages einige HTML ausführen zu lassen?PHP-Skript zu bestimmten Zeiten ausführen

Zum Beispiel habe ich auf meiner Homepage einen Header und zu bestimmten Zeiten möchte ich in der Lage sein, etwas unter dem Header, in diesem Fall einen iframe, hinzuzufügen.

Ich weiß, jeder erwähnte Cron-Jobs, aber wie würde das damit arbeiten? Gibt es auch eine Alternative? Es ist nicht auf allen Hosts verfügbar

+0

Es tut mir leid, wie ein Skript 'einige HTML ausführen'? –

+2

@Ben Ich denke, er meint "generieren" einige HTML. –

Antwort

11

Die Idee von Cron und geplanten Jobs scheint dem zu widersprechen, was Sie eigentlich versuchen. Wenn Sie möchten, dass in bestimmten Fällen nur zu bestimmten Zeiten etwas angezeigt wird (ein Iframe), können Sie die Serverzeit bei jeder Anfrage einfach überprüfen und anzeigen lassen, wenn Sie innerhalb eines bestimmten Zeitraums sind.

So etwas wird den gleichen Effekt wie ein Cron-Job mit größerer Granularität erzeugen und die Zeit genau in dem Moment prüfen, in dem die Anfrage gestellt wird.

<!-- Your Header here --> 

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

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

Sie auf die bedingte Anweisung erweitern können den iframe mehrmals pro Tag zu zeigen, oder Ihr Skript Prüfung unabhängig von äußeren Bedingung Sie suchen verwenden, um die Darstellung Ihrer iframe zu regieren.

Update: Zusätzliche Zeiten oder Arten von Vergleichen über so etwas wie

<?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 } ?> 

Die Idee der periodisch das Hinzufügen/Entfernen des iframe von unten Ihre Header mit einem serverseitigen cron/Task-Scheduler festgelegt werden könnte Job ist viel komplexer als nur bedingte Anzeige bei jeder Anfrage.

Auch wenn Sie eine bestimmte Aufgabe ausführen müssen, z. B. einen periodisch generierten Bericht, fällt die eigentliche Aufgabe der Anzeige der Ergebnisse normalerweise nicht auf die periodische Aufgabe. Das PHP-Skript, das für das Anzeigen dieses iframes verantwortlich ist, fragt die Datenbank zum Zeitpunkt der Anfrage noch immer nach neuen Inhalten ab und zeigt sie, wenn sie gefunden werden, anstatt die periodische Aufgabe das Skript irgendwie so zu modifizieren, dass sie einen iframe enthält.

+0

Genau das, was ich gesucht habe, aber ich mache nur Front-End, also bin ich immer noch ein bisschen auf Hinzufügen von zusätzlichen Zeiten im Scrip verloren. –

2

Auf Unix-Systemen cron ist Ihre beste Wette.

6

Wenn Sie unter Linux laufen, dann könnten Sie einen Cron-Job haben.

Wenn Sie unter Windows arbeiten, verwenden Sie den Taskplaner.

Wenn Sie sich in einer gehosteten Umgebung befinden, müssen Sie prüfen, ob beides zulässig ist.

+3

Wenn beides auf dem Host (v) nicht erlaubt ist, können Sie ein PHP-Script in der Befehlszeile schreiben, das als Daemon läuft und die Skripte zu konfigurierten Zeiten ausführt. Ein letzter Ausweg. –

+0

Oder Sie könnten einen Webservice erstellen, der es auslöst und das aus einer Box aufruft, die Sie besitzen. – jeffa00

0

Sie können die Aufgabe als Cron-Job planen.

0

Sie könnten Ihrer Crontab ein PHP-Skript hinzufügen, um das Skript automatisch in definierten Intervallen auszuführen. Geben Sie in der Befehlszeile crontab -e ein, um den Eintrag zu Ihrer crontab hinzuzufügen.

4

Wenn Sie auf Ihrem Server keinen Zugriff auf Cron-Jobs oder geplante Aufgaben haben, können Sie Online-Dienste wie http://pingability.com/ verwenden, um Ihr Skript in bestimmten Intervallen zu treffen. Es ist nicht perfekt, aber Sie können eine Art geheimer Schlüssel und Code einbauen, der dafür sorgt, dass das Skript nicht innerhalb eines bestimmten Zeitraums mehrfach ausgeführt wird. Scheint ein wenig hacky, aber ich habe es auf Live-Systemen verwendet, um täglich E-Mails zu senden, und es funktioniert gut seit über einem Jahr.

+0

Ich habe es versucht, aber der Link scheint –

+2

http://www.situeptime.com/ und https://www.websitepulse.com/ scheinen identische Dienste anzubieten. – sjobe

Verwandte Themen