目前我有一个非常基本的PHP脚本,用于从文本文件中随机绘制引号。
<?php include('testimonials.txt');
srand ((double) microtime() * 100000);
$random_number = rand(0,count($quotes)-1);
echo ($quotes[$random_number]);
?>
当然,目前每次页面加载时都会执行脚本,并在每次刷新页面时显示新内容。
我想知道有没有简单的方法来修改它来更改计时器上的内容,所以它每天只更改一次,或者每隔几天更改一次?
如果需要更改我网站的wp-cron.php,知道我需要在那里做什么吗?
谢谢
答案 0 :(得分:2)
您可以从基本内容开始,这样可以保存报价的ID以及在文件中选择的时间:
<?php
$cachefile = './current_t_id';
$time = $id = null; // assume we have no cached quote
$change_every = 3600; // seconds
include('testimonials.txt');
// if cached quote exists, load it
if(is_file($cachefile)) {
list($time, $id) = explode(' ', file_get_contents($cachefile));
}
// if no cached quote or duration expired, change it
if(!$time || time() - $time > $change_every) {
srand ((double) microtime() * 100000);
$id = rand(0,count($quotes)-1);
file_put_contents($cachefile, time().' '.$id); // update cache
}
// echo the quote, be it cached or freshly picked
echo ($quotes[$id]);
这里有几件事可以改进(例如错误处理,推荐文件以使缓存的报价无效的方式改变的可能性等),但基本的想法应该是显而易见的。
答案 1 :(得分:0)
您需要在database,平面文件或其他位置持久存储一些变量。
例如,您可以存储报价上次更新的时间以及当前报价ID。加载页面时,检查时间差是否大于某个时间量(例如1天,2天等)以及是否生成新的报价ID。否则,只需获取当前报价ID并显示它。