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

问题描述:

好吧,我有一个.txt文件与一大堆的网址。我得到了一个脚本,可以随机获取1行。然后我将其包含在另一个页面中。如何显示每15分钟的随机内容 - php

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

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

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

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

我不写PHP(可以完全理解它)最好使所有的帮助表示赞赏!

所以我在想什么是我有一个 脚本,随机从我最初的文本文件,选择一个url 那么 将其保存到另一个文本文件里,我 包括最后一页上该文件。

这几乎是我会做的。


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

  • 如果文件已经小于14分钟前修改(你可以找到使用filemtime()并比较其与time()
    • 那么,在使用什么文件
  • 其他
    • 重新生成该文件,从大文件中随机选择一个URL
    • 并使用新生成的文件

这样,不需要一个cron:到达该文件的先前修改后超过15分钟会重新生成它的第一个用户,用新的网址。

+0

哇超棒的主意!我现在要尝试实施它。只要知道如何删除该行,并且我是金色的!欢呼的人 – 2011-03-30 05:37:25

好了,所以我八九不离十解决了自己的问题:

<?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); 
?> 

不过反正是有,我可以删除选定的线一旦被摘下?

+0

你想删除哪一行?从原始的urls.txt文件或output.txt文件? – sikas 2011-03-30 05:40:22

+0

从原始文件,网址。txt :) – 2011-03-30 05:49:26

+0

(1)当不再需要时,你应该用'fclose()'关闭文件句柄。 (2)您可以使用'file()'将内容读入数组,'$ ads = file($ adfile,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)'。 (3)你可以使用'array_rand()'从数组中选择随机项'$ idx = array_rand($ ads)'。 – binaryLV 2011-03-30 06:16:34