#1 2012.08.12 01:10

W@P
Участник
Зарегистрирован: 2011.04.12
Сообщений: 58
Карма: 2
Профиль

opendir

Подскажите пожалуйста, как в моем скриптике читалке txt файлов, зделать с помощью opendir выводить по 25файлов на страницу, и добавить переключение между страницами
пред. след.


Вложения

Неактивен

#2 2012.08.12 03:39

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: opendir

W@P, принцип будет приблизительно таким:
- получение номера страницы.
- расчет точки начала показа. Текущая страница минус единица полученное умножить на количество эл. на страницу (в твоем случае на 25)
- в твоем цикле проверять достигло ли значение++ начальной точки показа. Если не достигло continue, если достигло будет выполняться код ниже.
- поставить ссылки вручную указав текущая/полученная станица -1 и +1 (туда и сюда)
- - - -
Вроде ничего не забыл. Я бы код написал, но с этого телефона долго. Если не получится у тебя, то напишу днем.

Неактивен

#3 2012.08.12 04:27

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: opendir

И точку остановки надо естественно расчитать, просто к началу прибавить число эл. на стр. (25).
если значение++ соответствует точке остановки, break.
можно без страниц, просто передавать количество эл на страницу.

Неактивен

#4 2012.08.12 14:29

W@P
Участник
Зарегистрирован: 2011.04.12
Сообщений: 58
Карма: 2
Профиль

Re: opendir

Мне хотелось,чтобы папка листалась(не тхт файлы) автоматически.
case :
не подходить, страниц слишком много будет...

Неактивен

#5 2012.08.12 15:17

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: opendir

Код:

1
span style="color: #0000BB"><?phpheader('Content-Type: text/html; charset=UTF-8;');$items = 25; // эл. на стр.if($handle = opendir('.')) { $page = (isset($_GET['page']) and 0 < $_GET['page']) ? (int) $_GET['page'] : 1; $start = ($page - 1) * $items; $stop = $start + $items; $i = 0; while(false !== ($file = readdir($handle))) { if ('.' != $file && '..' != $file) { $i += 1; if ($i <= $start) { continue; } echo '<a href="' . htmlspecialchars($file, ENT_COMPAT) . '">Читать ' . htmlspecialchars($file, ENT_NOQUOTES) . '</a><br/>'; if ($i >= $stop) { break; } } } closedir($handle); if ($i > 0) { echo '<a href="?page=' . ($page - 1) . '">Назад</a> | <a href="?page=' . ($stop > $i ? $page : $page + 1) . '">Вперед</a>'; }}

Отредактировано tipsun (2012.08.12 15:28)

Неактивен

#6 2012.08.12 15:29

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: opendir

W@P написал:

Мне хотелось,чтобы папка листалась(не тхт файлы) автоматически.
case :
не подходить, страниц слишком много будет...

У тебя есть:
красная ссылка
синяя ссылка
У каждой есть свои плюсы.
Выбор за тобой.
PS. это не фильм, думай сам, что выбрать smile

Отредактировано tipsun (2012.08.12 15:29)

Неактивен

#7 2012.08.12 17:02

W@P
Участник
Зарегистрирован: 2011.04.12
Сообщений: 58
Карма: 2
Профиль

Re: opendir

TIPSUN, ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ... smile smile smile

Неактивен

#8 2012.08.12 23:21

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: opendir

Код:

1
span style="color: #0000BB"><?phpif (1 == $page) { echo 'Назад'; }else { echo '';}

Неактивен

#9 2012.08.13 01:15

W@P
Участник
Зарегистрирован: 2011.04.12
Сообщений: 58
Карма: 2
Профиль

Re: opendir

TIPSUN, Спасибо! Все ок! smile

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.012 s