Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Вывод текста из большого числа файлов
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
UFO
Отправлено: 11 Января, 2009 - 10:14:43
Post Id



Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005  

Карма 0




Привет!

Допустим есть бесконечное число файлов с именами в виде NN.php, где NN - число от 1 до бесконечности. В каждом файле записано по две строки. Необходимо вывести текст из всех этих файлов, но разбить постранично. Т.е. если текущая страница главная или первая, то выводим текст из последних 20 файлов с наиболее большими номерами. Причем, наиболее крупные номера всегда сверху, а меньшие ниже по убывающей. Если страница вторая, то выводим следующие 20 файлов. Также стоит учесть, что бывают и последние страницы, когда нужно не просто вывести первые 20 файлов, а столько, сколько там остается из невыведенных. Вывод оформляется в таком виде:
CODE:
list($str1,$str2)=array_map('trim',file("files/$i.php"));
echo "<div align=center><font size=1>";
echo $str1;
echo "<div></font>";
echo "<p>";
echo $str2;
echo "</p>";
echo "</center>

Как все остальное сделать - не знаю.
Может кто поможет? Однако Улыбка

P.S. Если значение цифры "бесконечность" будет необходимо как-то представить, то, думаю, 1000 вполне хватит.

(Отредактировано автором: 11 Января, 2009 - 11:07:09)

 
 Top
Furax
Отправлено: 12 Января, 2009 - 00:40:41
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Список файлов можно получить функцией glob():
CODE:
$files=glob('dir/*.txt');
Количество элементов в полученном массиве даётся функцией count:
CODE:
$filesNumber=count($files);
Дальше, вроде бы, очевидно...
 
 Top
UFO
Отправлено: 13 Января, 2009 - 14:05:55
Post Id



Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005  

Карма 0




Спасибо, Furax. В принципе дальше все понятно. Тут очевидно, что надо использовать циклы. Я не особо в них силен, поэтому пока не могу понять как быть с последней страницой, где надо вывести не 20 текстов файлов, а просто все, что осталось. И еще хотелось бы к этому всему привязать, что данные о номере страницы передаются запросом GET, т.е. через строку адреса.
 
 Top
Furax
Отправлено: 13 Января, 2009 - 22:00:33
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




CODE:
$filesPerPage = 20;
$pages = ceil($filesNumber/$filesPerPage); //Количество страниц

$page = @(int)$_GET['page'];
if ($page < 1 || $page > $pages) //Неверный номер страницы передан
$page = 1;

$begin = ($page-1)*$filesPerPage; //Первый файл на странице
$end = min($page*$filesPerPage, $filesNumber)-1; //Последний файл на странице

for ($file = $begin; $file<=$end; ++$file) //В цикле обрабатываем все файлы на странице
{
$content = file("$file.php"); //Содержимое файла
...
}
 
 Top
UFO
Отправлено: 23 Января, 2009 - 04:24:49
Post Id



Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005  

Карма 0




Furax, большое спасибо. Пришлось немного повозиться, ибо твой код не совсем правильно работает (он выводит последний файл, а дальше все подряд, начиная с первого). Вообщем, перекроил, сделал еще чтоб номера страниц и ссылочки на них были Улыбка Но твой код реально помог Подмигивание Еще раз спасибо Хорошо

(Отредактировано автором: 23 Января, 2009 - 04:25:29)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0383]     [ Gzipped ]