4

我有一个非常基本的 PHP 脚本,我用它来发布有趣的链接,我发现这些链接到我网站上的可过滤列表以及我的 rss 提要(当被 ping 时,提要燃烧器也会发推文)。

我想知道的是添加一个“队列”有多难,我可以在其中一次提交多个条目并为每个条目安排未来的时间/日期发布?

类似于Twuffer为 Twitter 或Tumblr和 Wordpress 为博客帖子所做的事情。

这需要cron作业吗?也许用我的 PHP 脚本编写另一个文件'drafts.txt',如果它是一个未来的帖子 - 以及一个计划的 cron 来检查时间/日期是否 =,然后将它写入其他文件

我显然是这个新手 - 但我会很感激任何帮助!谢谢!

这是我目前的小脚本:

<?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>");
}
?>
4

2 回答 2

3

这是我最终做的事情(感谢 Alfred 让我朝着正确的方向思考):

  • 我在表单中添加了一个单选按钮来发布“现在”或“稍后”。
  • 选择“稍后”会显示一个日期选择器,它将一个日期时间变量传递到我的脚本中,以便我希望发表文章。
  • 在我的脚本中,如果选择“现在”,则数据将直接写入 .txt 文件,如上所示。如果选择“稍后”,则将数据(带有发布时间戳)写入 MySQL 数据库。
  • 我安排了一个 cron 作业,每十分钟运行另一个 php 脚本,以写入任何带有已传递到我的 .txt 文件的时间戳的数据,并从数据库中删除该条目。

效果很好!

于 2011-01-25T21:49:05.647 回答
2

我猜你可以在这里阅读更多关于这个的信息,但有一个简短的总结:

使用 cron 定期执行作业(例如,每个工作晚上运行自动磁带备份或生成月末报告)。使用 at 在将来的某个时间运行一次作业。使用它们来自动化您的重复性任务!

我想你应该用它at来安排你的任务


但您也可以查看 Google 应用引擎任务队列/ cron来免费安排您的任务(大量配额)。它使用webhook自动执行任务和扩展。

于 2010-12-04T01:36:38.457 回答