Постраничная разбивка на PHP

jcrush
На сайте с 04.07.2004
Offline
371
1259

Добрый день всем, не знаю как правильно все сделать, сделал через ж, но вроде как работает, хочется постраничный вывод разбивку...

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

Реализовал так, но без разбивки и не очень красиво как видите:

$d = "page";


$dh = opendir( $d ) or die ( "Не удалось открыть каталог $d" );

while ( $f = readdir( $dh ) )





$link.= " <a href=\"index.php?sub=$f\">файл $f</a><br>";

$text=trim(substr($link,92)) ;

Благодарю зарание за помощь.

» Блог (http://blog.stfw.ru/) - SEO-заметки. ДВчат: @dvchat (https://t.me/dvchat)
FeoOne
На сайте с 27.12.2008
Offline
32
#1

$d = "page";
$dh = opendir( $d ) or die ( "Не удалось открыть каталог $d" );
while($f = readdir($dh)) { $arr[] = $f; }
$page = 1;
$lpp = 20; // 20 файлов на 1 страницу
for($i=0; $i<$lpp; $i++) {
$x = $i + ($page-1)*$lpp;
echo '<a href="index.php?sub='.$arr[$x].'">файл '.$arr[$x].'</a><br>';
}
InoHacker
На сайте с 18.10.2009
Offline
75
#2

А может попробовать сначала считать все имена в массив, а потом уже выводит постранично из массива ?

И кстати:

/* Именно этот способ чтения элементов каталога является правильным. */

while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

/* Этот способ НЕВЕРЕН. */
while ($file = readdir($handle)) {
echo "$file\n";
}
Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk
RO
На сайте с 13.07.2009
Offline
88
#3

лучшу уж глоб юзать...

jcrush
На сайте с 04.07.2004
Offline
371
#4
FeoOne:
$d = "page";

$dh = opendir( $d ) or die ( "Не удалось открыть каталог $d" );
while($f = readdir($dh)) { $arr[] = $f; }
$page = 1;
$lpp = 20; // 20 файлов на 1 страницу
for($i=0; $i<$lpp; $i++) {
$x = $i + ($page-1)*$lpp;
echo '<a href="index.php?sub='.$arr[$x].'">файл '.$arr[$x].'</a><br>';
}

А как вывести список страниц, по идеи надо же страницы чтобы были, 1,2,3 а то сейчас просто выводит 20 файлов и все...

InoHacker
На сайте с 18.10.2009
Offline
75
#5

Во .. пробуй =)

$d = "page";
$dh = opendir( $d ) or die ( "Не удалось открыть каталог $d" );
while($f = readdir($dh)) { $arr[] = $f; }
$lpp = 20; // 20 файлов на 1 страницу

if(isset($_GET['page']))
$page = $_GET['page'];
else
$page = 0;
$var = $page * $lpp;
for($x = 0; $x<$lpp; $x++)
{
$z = $var + $x;
if ($arr[$z] == '')
break;
echo '<a href="index.php?sub='.$arr[$z].'">файл '.$arr[$z].'</a><br>';
}
$pages = floor(count($arr) / $lpp);
echo 'Pages:';
for($y=0; $y <= $pages; $y++)
{
$z = $y +1;
echo '<a href="index.php?page='.$y.'">Страница '.$z.'</a> ';
}

Будешь пользовать - не забудь фильтровать $_GET, лень было вводить =)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий