нужно читать построчно по дате - PullRequest
3 голосов
/ 13 июля 2010

если есть файл ex (news.txt)

и мне нужен php, чтобы прочитать мои слова в этом файле только по одной ссылке в день

каждый день php читает только одну строку >>

я пишу этот код, но он не работает >>> любая помощь

 $wordfile = "words.txt";
 $open = fopen($wordfile, "r");
 $read = fread($open, filesize($wordfile));
 fclose($wordfile);
 $array = explode("\n",$read);
 $date = date("z");
 while ($date++){
echo $array;
 }

Ответы [ 3 ]

1 голос
/ 13 июля 2010
$f = file("words.txt");
echo $f[date("z")];

Это так просто, если у вас есть файл с 366 строками.Проблема вашего кода в том, что цикл никогда не заканчивается.Вы, вероятно, хотели while ($date--), а затем сделали что-то в цикле, которое изменило «текущую строку».

0 голосов
/ 13 июля 2010

Будет проще, если вместо этого использовать функцию file(), которая читает весь файл в массив:

$wordfile = "words.txt";
$lines = file( $wordfile );
$count = count($lines);
for ($i = 0; $i < $count; $i++) {
    echo 'Line ',($i + 1),': ',$lines[$i],'<br />';
}

Обновление

Если я правильно понял ваши требования, у вас будет текстовый файл с семью строками, по одной на каждый день недели. Итак, код будет таким:

$wordfile = "words.txt";
$lines = file( $wordfile );
$count = count($lines);
$day_of_week = date('z'); // 0 (for Sunday) through 6 (for Saturday)
echo $lines( $day_of_week );

Если вам нужно более сложное решение, вы можете изменить строку $day_of_week = date('z'); в соответствии со своими потребностями. Узнайте больше о функции date() в PHP.

0 голосов
/ 13 июля 2010

Следующий код при запуске выводит запись с номером строки [дней с 13.07.2010]

<?php

$startDate = mktime(0,0,0,7,13,2010);
$currentDate = time();
$dateDiff = $currentDate - $startDate;

$dayOn = floor($dateDiff/(60*60*24));

$lines = file("words.txt");

echo trim($lines[$dayOn]) . "\n";

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...