|
|
|
| Здравствуйте, форумчане!
Вот есть код постраничной навигации, в котором используется один файл, из которого берутся данные:
<?php
// Имя файла
$dir = 'dir';
//
$lines = scandir($dir);
// Число позиций на странице
$pnumber = 3;
// Удаляем все пробельные символы в конце строк
array_walk($lines, 'trim_array');
// Проверяем передан ли номер текущей страницы
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
// Число страниц
$total = count($lines);
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
$start = (($page - 1)*$pnumber + 1);
$end = $page*$pnumber + 1;
if($end > $total) $end = $total;
// Выводим содержимое страниц
for($i = $start; $i < $end; $i++)
{
echo $lines[$i]."<br>";
}
// Постраничная навигация
for($i = 1; $i <= $number; $i++)
{
// Если это произвольная страница
if($i != $number)
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] ";
}
else
{
echo "<a href='$_SERVER[PHP_SELF]?page=$i'>[".
(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
// Если это последняя страница заменяем последнюю цифру
// максимальным числом позиций в массиве $temp
else
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] ";
}
else
{
echo "<a href='$_SERVER[PHP_SELF]?page=$i'>[".
(($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> ";
}
}
}
?>
|
Не подскажете как его доработать, чтобы информация бралась из директории, в которой много файлов?
Вот код, который перебирает файлы из директории и выводит их на странице:
foreach (glob ('dir/*.txt') as $f) {
$n++;
$files .= '<a href="index.php?id='.$n.'">'.basename($f,'.txt').'</a><br>';
}
echo $files. '<br><br>';
//если был запрос файла, выводим его на странице
if($id) {
$f = glob('dir/*.txt');
include $f[$id-1];
}
|
С уважением,
Олег | |
|
|
|
|
|
|
|
для: Oleg77
(26.03.2015 в 19:15)
| | проще будет написать заново. | |
|
|
|
|
|
|
|
для: Oleg77
(26.03.2015 в 19:15)
| | Посмотри вот этот скрипт
Хоть он и старенький, работает до сих пор на сайте.
Тут выводится в таблице 4х4, т.е. 16 изображений на страницу, внизу есть предыдущее и следующее.
Не знаю насчет нагрузки на сервер, фунция glob вроде сильно грузит сервер, если много файлов надо перебирать. У меня порядка где-то 100 фото может меньше, поэтому не чувствуется. Почитай в инете, по поводу этой функции много написано.
<table cellpadding="0" cellspacing="0">
<?php
$spisok=glob("img/foto/*.{jpg}",GLOB_BRACE); // Смотрим директории с маленькими изображениями
$spisok1=glob("img/foto/b/*.{jpg}",GLOB_BRACE); // Смотрим директории с большыми изображениями
sort($spisok);
sort($spisok1);
$pnumber=16; // Сколько изображений будет выводится на странице
if(empty($_GET['start']))
{
$start=0;
$a=0;
for($i=0; $i<4; $i++)
{
echo "<tr>";
for($y=0; $y<4; $y++, $a++)
{
echo "<td><a title=\"\" rel=\"1\" href=\"".$spisok1[$a]."\"><img src=\"".$spisok[$a]."\" alt=\"\"></a></td>";
}
echo "</tr>";
}
}
else
{
$start=$_GET['start'];
$a=$start;
for($i=0; $i<4; $i++)
{
echo "<tr>";
for($y=0; $y<4; $y++, $a++)
{
if(!empty($spisok[$a]))
{
echo "<td><a title=\"\" rel=\"1\" href=\"".$spisok1[$a]."\"><img src=\"".$spisok[$a]."\" alt=\"\"></a></td>";
}
else
{
echo "<td> </td>";
}
}
echo "</tr>";
}
}
?>
<tr class="arrow">
<td colspan="2" height="40">
<?php
// выводим ссылки на переключение страниц
if($start!=0)
{
echo "<a title='Вернуться назад' href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?start=".($start-$pnumber)."><<< предыдущие</a>";
}
else echo " ";
?>
</td>
<td colspan="2">
<?php
if(count($spisok)>$start+$pnumber)
{
echo "<a title='Смотреть дальше' href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?start=".($start+$pnumber).">следующие >>></a>";
}
else echo " ";
?>
</td>
</tr>
</table>
|
| |
|
|
|