如何每15分钟显示随机内容 - php

时间:2011-03-30 05:29:41

标签: php random

好的,我有一个带有一堆网址的.txt文件。我有一个脚本随机获得1行。然后我把它包含在另一页中。

但是我希望网址每15分钟更改一次。所以我猜我需要使用一个cron,但是我不确定我应该把它全部放到位。

我发现如果你包含一个文件,它仍然会提供一个随机输出,所以我猜我是否运行了cron和包含文件它会变得混乱。

所以我想的是我有一个脚本从我的初始文本文件中随机选择一个url,然后将其保存到另一个.txt文件中,并将该文件包含在最后一页上。

我刚发现这是一个正确的方向: Include php code within echo from a random text

我不是最好的写php(可以理解它)所以所有的帮助都很感激!

2 个答案:

答案 0 :(得分:1)

  

所以我在想的是我有一个   随机选择网址的脚本   从我的初始文本文件然后它   将它保存到另一个.txt文件和我   在最后一页上包含该文件。

这就是我要做的事情。


但是,要重新生成该文件,您不一定需要cron。
你可以使用以下想法:

  • 如果文件的修改时间少于15分钟前(您可以使用filemtime()查找并将其与time()进行比较)
    • 然后,使用文件中的内容
  • 否则
    • 重新生成文件,从大文件中随机选择一个网址
    • 并使用新生成的文件

这样就不需要cron:在上次修改文件后超过15分钟到达的第一个用户将使用新的URL重新生成它。

答案 1 :(得分:0)

好吧,所以我解决了我自己的问题:

    <?php

// load the file that contain thecode
$adfile = "urls.txt";
$ads = array();

// one line per code
$fh = fopen($adfile, "r");
while(!feof($fh)) {

  $line = fgets($fh, 10240);
  $line = trim($line);
  if($line != "") {
    $ads[] = $line;
  }
}

// randomly pick an code
$num = count($ads);
$idx = rand(0, $num-1);


$f = fopen("output.txt", "w"); 
fwrite($f, $ads[$idx]); 
fclose($f);
?>

然而,无论如何我可以删除所选择的行一旦被删除?