Новости / новый постраничный вывод ??

Sir-J

Новичок
Новости / новый постраничный вывод ??

Здравствуйте!
Буквально месяц назад мы в форуме
"сделали", а вернее переделали скрипт.
Например, в папке info валяются куча статей, и все пронумерованы, например 001, 002, 003 ...
И в каждой из них идет разделитель ##.
Ну так вот, теперь возникает вопрос,
как же сделать постраничный вывод, например, по
10 статей на одной странице.
Реализовано только максимальное кол-во выводимых статей,
но не постраничный вывод.
Прошу помочь кодами или переделками :)
Спасибо.

Вот код:
PHP:
<?

$d = dir("info/");
while($flg = $d->read()) {
$ar2[] = $flg;
}
$d->close();

for ($i = count($ar2)-1; $i >= 0; $i--) {
 $ar[] = $ar2[$i];
}

rsort($ar);

$to = 12; // кол-во статей

if ($to > count($ar)) {
 $to = count($ar);
}

for ($y = 0; $y < $to; $y++)
{
if ($ar[$y] != "." & $ar[$y] != ".." & $ar[$y] != ".htaccess")
{
$open2=fopen("info/" . $ar[$y] . "","r");
$open = fgets($open2);
$open=explode("##",$open);
if ($open[9] == $see)
{
echo "результаты";
}

fclose($open2);
}
}
?>
-~{}~ 30.07.05 03:38:

мобыть в массив все пихнуть?
только не представляю, как дальше работать :(
 

tristram

Guest
элементарно, Ватсон.
PHP:
for ($i = count($ar2)-1; $i >= 0; $i--) { 
$ar[] = $ar2[$i]; 
}
ну ты даешь...
Вот написал тебе
PHP:
$files = array();
$handle = opendir("info/");
$badfn = array(".","..",".htaccess");
while (($o = readdir($handle)) !== FALSE)
{
 if (!in_array($v,$badfn)) {$files[] = $v;}
}
closedir($handle);
natsort($files);
//$files = array_reverse($files);
$c = count($files);
$perpage = 10;
$p = ceil($c/$perpage); //кол-во страниц
foreach($files as $v)
{
 if (($i >= $page*$perpage) and ($i < $page*$perpage+$perpage))
 {
  $open2 = fopen("info/" . $v. "","r"); 
  $open = fgets($open2); 
  $open = explode("##",$open); 
  if ($open[9] == $see) 
  {
   echo "результаты"; 
  }
}
if ($p > 1) {echo "<br>Pages: "; for($i=0;$i<$p;$i++) {if ($newspage == $i) {$t = $i;} else {$t = "<u>".$i."</u>";} echo " <a href=\"?page=".$i."\">".$t."</a> . ";}}
не знаю от чего я сегодня такой добрый. скрипт я не тестил, накалякал прям в быстрый ответ, но должно пахать.
 

Sir-J

Новичок
Писиб, tristram.
Вот еще вариант один нашел,
если кому понадобится.
Еще один способ вывода файлов с папки постранично.
Код принадлежит не мне, так что копирайты я не ставлю :)
но изменения внес.
Удачи.

PHP:
<?php 
$dirname = "info/"; 
$pnumber =3; // Кол-во на 1 страничке 
if(empty($_GET['start'])) $_GET['start'] = 0; 
$dir = opendir($dirname); 
if(!$dir) exit("ФИх Вам"); 
$count = 0; 
while($file = readdir($dir)) 
{ 
if($file != "." && $file != "..") $filenames[] = $file; 
} 
closedir($dir); 
$count = count($filenames); 
if(($_GET['start'] + $pnumber)>$count) $_GET['start'] = $count - $pnumber; 
$k = 0; 
for($i = $start; $i<$start + $pnumber; ++$i) 
{ 
++$k; 
if($k==1) echo "$filenames[$i]<br>"; 
else if($k!=3) echo "$filenames[$i]<br>"; 
else 
{ 
$k = 0; 
echo "$filenames[$i]<br>\n"; 
} 
} 
$number = (int)($count/$pnumber); 
if((float)($count/$pnumber) - $number != 0) $number++; 
for($i = 1; $i<=$number; $i++) 
{ 
if($number == $i) 
{ 
if($start == $i) 
echo "[".(($i - 1)*$pnumber + 1)."-$count]"; 
else 
echo "<a href=?start=".(($i - 1)*$pnumber).">[".(($i - 1)*$pnumber + 1)."-$count]</a>"; 
} 
else 
{ 
if($start == $i) 
echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]"; 
else 
echo "<a href=?start=".(($i - 1)*$pnumber).">[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]"; 
} 
} 
?>
 

phobos

Новичок
не знаю от чего я сегодня такой добрый. скрипт я не тестил, накалякал прям в быстрый ответ, но должно пахать.
оно и видно откуда то вместо $o появилась $v foreach не закрыл...
хотя я тоже не тестировал :)
 
Сверху