我正在尝试创建一个简单的“每日报价”脚本。这需要做的是能够从一个简单的.txt文件中读取,每行获取每个条目并输出该行的内容,每天一次。例如,如果.txt文件具有以下文本:
This is the quote of the day
This is another quote of the day
This is the last quote of the day
然后,脚本将获取第一个文本块This is the quote of the day
并将其输出到站点上。然后,它将逐行循环,基于每个增量日直到结束(然后循环回到开头)。希望这只会允许人们剪切/粘贴新信息,因为它依赖于行号,而不是内容本身。
如果有人知道.XML的实现 - 这将是一个很大的帮助 - 试图找出最简单的方法来解决这个问题。谢谢!
答案 0 :(得分:0)
假设您有一个包含365行的文件(每天一行)......
$lines = file("quotes.txt");
$day = date("z");
echo $lines[$day];
答案 1 :(得分:0)
这很简单。
$quotes = file('your_file.txt');
$the_quote = $quotes[ date('w') ];
echo $the_quote;
来自php.net
:
w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)
如果您希望每年每天报价,只需创建一个包含366行的文件并使用date('z')
。
答案 2 :(得分:0)
您可以将当前索引行和日期保存在文件的第一行,如下所示:
01;09-11-2011
This is the quote of the day
This is another quote of the day
This is the last quote of the day
要检索报价,您需要检查日期是否为今天,如果是,您将获得第n行,否则您将数字加1,更新日期然后获取报价。
答案 3 :(得分:0)
这应该适用于文本文件中的任意行数(未经测试):
// get lines
$lines = file('lines.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
// snap to midnight
$day = mktime(0,0,0, date("n"), date("j"), date("Y")) / (3600*24);
// modulo fun
echo $lines[ $day % count($lines) ];
答案 4 :(得分:0)
最灵活的方式绝对是:
$day = date("z");
$file = file('quotes.txt');
$file_length = count($file);
$quote = $file[$day % file_length];
通过使用日期和文件长度的模数,您每天都会从文件的第一行到最后一行重复循环(然后重新开始)。