2010-12-04 15 views
3

Ich habe ein sehr einfaches PHP-Skript, das ich benutze, um interessante Links, die ich finde, zu einer filterbaren Liste auf meiner Website und auch zu meinem RSS-Feed zu posten (welcher feedburner dann auch twittert, wenn gepingt).Wie man Inhalt für zukünftiges Datum einplant/in Warteschlange stellt? Veröffentlichen Sie in PHP?

Ich frage mich, wie schwer es wäre, eine "Warteschlange" hinzuzufügen, in der ich mehrere Einträge gleichzeitig einreichen und eine zukünftige Zeit/Datum für jede Veröffentlichung festlegen könnte?

Ähnlich wie bei Twuffer für Twitter oder Tumblr und Wordpress für Blog Posts getan haben.

Benötigt dies Cron-Jobs? Vielleicht mit meinem PHP-Skript schreiben eine andere Datei 'drafts.txt' wenn es ein zukünftiger Beitrag ist - und eine geplante Cron zu überprüfen wenn Zeit/Datum =, dann schreibe es in die anderen Dateien?

Ich bin natürlich ein Neuling mit diesem - aber ich würde jede Hilfe zu schätzen wissen! Vielen Dank!

Hier ist mein aktuelles kleines Skript:

<?php 

if($_POST['Submit']) 
{ 
$category = $_POST['category']; 
$linkurl = $_POST['linkurl']; 
$linkname = $_POST['linkname']; 
$description = $_POST['description']; 
$submittername = $_POST['submittername']; 
$submitterurl = $_POST['submitterurl']; 
$postdate = $_POST['postdate']; 

// Remove slashes. 
$description = stripslashes($description); 

//the data for list.txt 
$data = " 
<li class='$category'> 
    <h3><a href='$linkurl' target='_blank'>$linkname</a></h3> 
    <p><b>$description</b></p> 
    <p><small>Submitted by: <a href='$submitterurl' target='_blank'>$submittername</a><i> - $postdate</i></small></p> 
</li> 
"; 

$filename = "list.txt"; 

$fp   = fopen($filename,"r"); 
$OldData = fread($fp, 80000); 
fclose($fp); 

$New = "$data$OldData"; 

$fp = fopen($filename,"w"); 
if(!$fp) die("Cannot write $filename ."); 
fwrite($fp, $New, 800000); 
fclose($fp); 

//the data for rss.php 
$feeddata = " 
<item> 
    <title>Supplement: $linkname</title> 
    <link>$linkurl</link> 
    <description>$description</description> 
</item> 
"; 

$ffilename = "rss.txt"; 

$ff   = fopen($ffilename,"r"); 
$OldfeedData = fread($ff, 80000); 
fclose($ff); 

$New = "$feeddata$OldfeedData"; 

$ff = fopen($ffilename,"w"); 
if(!$ff) die("Cannot write $ffilename ."); 
fwrite($ff, $New, 800000); 
fclose($ff); 


print("<h1>Success!</h1><a href='add.php'>Add Another?</a>"); 
} 
?> 

Antwort

1

Sie mehr dazu über here ich denke, aber eine kurze Zusammenfassung lesen können:

Mit cron ausführen Jobs in regelmäßigem Zeitplan (Führen Sie z. B. ein automatisches Band Backup jeder Arbeitsnacht aus oder generieren Sie Monatsendberichte). Verwenden Sie um einen Job einmal in der Zukunft einmal auszuführen. Verwenden Sie beide, um Ihre sich wiederholenden Aufgaben zu automatisieren!

Ich denke, man at verwenden sollten Ihre Aufgaben


Aber Sie könnten auch einen Blick auf Google App Engine kostenlos (großzügiges Kontingent) müssen planen task queue/cron um Ihre Aufgaben zu planen. Es verwendet webhooks, um Aufgaben auszuführen und automatisch zu skalieren. tun (dank Alfred für mich immer in der richtigen Richtung zu denken)

+0

Danke für die Hilfe - Sie haben mich in die richtige Richtung denken! – Josiah

2

Hier ist, was ich am Ende:

  • ich einen Radio-Buttons in meiner Form hinzugefügt, um zu Posten „Now“ oder „später“.
  • Wenn Sie "Später" auswählen, wird ein Datumszeiger angezeigt, der eine datetime-Variable in mein Skript übergibt, wenn der Artikel veröffentlicht werden soll.
  • In meinem Skript, wenn "Jetzt" ausgewählt ist, werden die Daten direkt in die TXT-Datei geschrieben, wie oben gezeigt. Wenn "Später" ausgewählt wird, werden die Daten (mit Veröffentlichungs-Zeitstempel) in eine MySQL-Datenbank geschrieben.
  • Ich plante einen Cron-Job, um alle zehn Minuten ein anderes PHP-Skript auszuführen, um alle Daten mit einem Zeitstempel zu schreiben, der an meine .txt-Datei übergeben wurde, und den Eintrag aus der Datenbank zu entfernen.

Funktioniert gut!

Verwandte Themen