创建文本文件以便每天阅读

时间:2011-11-09 16:40:54

标签: php text-files

我正在尝试创建一个简单的“每日报价”脚本。这需要做的是能够从一个简单的.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的实现 - 这将是一个很大的帮助 - 试图找出最简单的方法来解决这个问题。谢谢!

5 个答案:

答案 0 :(得分:0)

假设您有一个包含365行的文件(每天一行)......

$lines = file("quotes.txt");
$day = date("z");
echo $lines[$day];

答案 1 :(得分:0)

这很简单。

1。)您创建一个包含7行的文本文件,每行代表一个引号。

2.。)PHP:您必须将文件加载到数组中并获取当周当天的数字表示:

$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];

通过使用日期和文件长度的模数,您每天都会从文件的第一行到最后一行重复循环(然后重新开始)。