[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поочерёдный вывод данных из txt
H 000 AM
Существует текстовый файл (txt), мне нужно извлекать из него по очереди данные. Например (Гугль.ру) (яндекс.ру) (мыло.ру) и т.д. Чтобы при обращении к php он выдавал данные по очереди, например 1,2,3,4,5 потом 2,3,4,5,1 потом 3,4,5,1,2. Сначала я хотел сохранять как массив file[]="гугль.ру" в текстовом файле, так и сделал, но... Но пхп не обрабатывает код из txt и inc, может я чего намудрил. Вобщем подскажите как правильно будет сохранить и извлечь инфу, но при этом по очерёдности. Просто так я сделал, показывает, а вот именно чтоб по очереди не могу. Чайника крышкой не бить) он учится))



Спустя 1 минута, 45 секунд (14.07.2011 - 13:44) alex12060 написал(а):
Цитата
например 1,2,3,4,5 потом 2,3,4,5,1 потом 3,4,5,1,2


Это как? Рандомно имеешь ввиду?

Спустя 3 минуты, 14 секунд (14.07.2011 - 13:48) Winston написал(а):
foreach(file('file.txt') AS $k => $v)
echo $k . ' -> ' . $v . '<br/>';

Спустя 19 минут, 20 секунд (14.07.2011 - 14:07) H 000 AM написал(а):
Пример: file.txt

<?php
file[]="гугль.ру";file[]="гугл.ру";file[]="гуг.ру";file[]="гу.ру& quot;;
?>



Пример: file.php

<?php
foreach(file('file.txt') AS $k => $v)
echo $k . ' -> ' . $v . '<br/>';
?>


Всё верно?



Спустя 2 минуты, 45 секунд (14.07.2011 - 14:10) Winston написал(а):
Вот так достаточно
file.txt
Цитата
гугль.ру
гугл.ру
гуг.ру
гу.ру

А file.php верно.

Спустя 6 минут, 49 секунд (14.07.2011 - 14:17) Guest написал(а):
Вот тогда ежё вопрос, как записывать с каждой новой строки

$fh=fopen('file.txt', 'a');
fwrite($fh, $ResFac);
fclose ($fh);

этот записывает в конце файла

Спустя 5 минут, 32 секунды (14.07.2011 - 14:22) Winston написал(а):
Цитата (Guest @ 14.07.2011 - 14:17)
как записывать с каждой новой строки

Это, можно
Цитата (Guest @ 14.07.2011 - 14:17)
$fh=fopen('file.txt', 'a');
fwrite($fh, $ResFac);
fclose ($fh);

заменить одной строчкой
file_put_contents('file.txt', $resFac, FILE_APPEND);

Спустя 4 минуты, 37 секунд (14.07.2011 - 14:27) Guest написал(а):
И ещё может не в тему, на висте у меня не работает MySQL, точнее работает и таблицы создаёт, но CMS пишет не установлен MySQL, настройки верные, друг делал.

Спустя 34 минуты, 59 секунд (14.07.2011 - 15:02) twin написал(а):
Цитата (PHPprogramer @ 14.07.2011 - 10:48)
foreach(file('file.txt') AS $k => $v)
echo $k . ' -> ' . $v . '<br/>';

Так никогда не делай

Спустя 10 минут, 44 секунды (14.07.2011 - 15:12) Winston написал(а):
Цитата (twin @ 14.07.2011 - 15:02)
Так никогда не делай

Очень хочу узнать, почему ? smile.gif

Спустя 34 минуты, 22 секунды (14.07.2011 - 15:47) Guest написал(а):
Теперь подробно есть файл file.txt

Автомобильный форум
Медицинский форум
... форум
... форум
... форум
... форум
и т.д.

Что нужно?

Подробно на примере, есть файл file.php он читает из file.txt мне нужно что-бы после каждого обращения (вызова файла) к файлу file.php он читал так

Первое обращение

Автомобильный форум
Медицинский форум
... форум
... форум
... форум
... форум


Второе обращение


Медицинский форум
... форум
... форум
... форум
... форум
Автомобильный форум


третие обращение

... форум
... форум
... форум
... форум
Автомобильный форум
Медицинский форум
и т.д.

Я думаю это понятно, дак вот возможно это реализовать как-то?

Спустя 14 минут, 10 секунд (14.07.2011 - 16:01) Winston написал(а):
C помощью cookie можно сделать, или сессии. Но я с куками сделал
Свернутый текст
$count = 0;
if(isset($_COOKIE['count']))
{
setcookie('count', $_COOKIE['count']+1, time() + 60*60*24);
$count = $_COOKIE['count'];
}
else
{
setcookie('count', $count++, time() + 60*60*24);
$count = 0;
}
echo $count;
$file = file('file.txt');
for($i = $count; $i <= sizeof($file); $i++)
{
echo $file[$i] . '<br/>';
}

Спустя 24 минуты, 39 секунд (14.07.2011 - 16:26) Guest написал(а):
Жалуется он у меня на эту строку
setcookie('count', $_COOKIE['count']+1, time() + 60*60*24);

Спустя 9 минут (14.07.2011 - 16:35) Winston написал(а):
Цитата (Guest @ 14.07.2011 - 16:26)
Жалуется он у меня на эту строку
setcookie('count', $_COOKIE['count']+1, time() + 60*60*24);

До этой строчки не должно быть никакого вывода в поток.

Спустя 29 минут, 53 секунды (14.07.2011 - 17:04) twin написал(а):
Цитата
Очень хочу узнать, почему ?
Очень некошерно помещать исполняемую функцию в аргумент циклов. Плохая привычка.
И хоть фореч воде как работает с копей массива и по логике вещей не должен бы дергать файл при каждой итерации, но кто его знает. Замеры показывают аномалию не в пользу такой записи. Береженого Бог бережет, да и логичнее всеже и глаз не режет с перезаписью.
	$array = file('file.txt');
foreach($array AS $k => $v)
echo $k . ' -> ' . $v . '<br/>';

Спустя 2 минуты, 7 секунд (14.07.2011 - 17:07) Winston написал(а):
twin
Тьфу как-то не подумав записал. На автопилоте так сказать (вот к чему это приводит в программировании) biggrin.gif

Спустя 43 минуты, 13 секунд (14.07.2011 - 17:50) Guest написал(а):
Там всё нормально, но указывает на эту строку

Спустя 1 час, 12 минут, 14 секунд (14.07.2011 - 19:02) Winston написал(а):
Guest
А какую ошибку выдает ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.