Создать текстовый файл для чтения каждый день - PullRequest
2 голосов
/ 09 ноября 2011

Я пытаюсь создать простой сценарий "Цитата дня".Для этого нужно иметь возможность читать из простого файла .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 голосов
/ 09 ноября 2011

Самый гибкий способ, безусловно:

$day = date("z");
$file = file('quotes.txt');
$file_length = count($file);

$quote = $file[$day % file_length];

Используя модуль дня и длину файла, вы получаете повторяющийся цикл каждый день от первой строки до последней строки файла (а затем начинаете снова).

0 голосов
/ 09 ноября 2011

Это должно работать с любым количеством строк в вашем текстовом файле (не проверено):

// 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) ];
0 голосов
/ 09 ноября 2011

Это очень просто.

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').

0 голосов
/ 09 ноября 2011

Вы можете сохранить текущую строку индекса и день в первой строке файла, например:

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

Чтобы получить цитату, вы бы проверили дату сегодня, если вы ее получилив девятой строке в противном случае вы добавляете 1 к номеру, обновляете дату и затем получаете цитату.

0 голосов
/ 09 ноября 2011

Предполагается, что у вас есть файл с 365 строками (одна строка за текущий день) ...

$lines = file("quotes.txt");
$day = date("z");
echo $lines[$day];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...