index.php
<?php
require_once 'functions.php';
function getLinkName($file)
{
$lines = file_get_contents($file);
$lines = explode("\n", $lines);
return $lines[0];
}
define('FILESONPAGE', 5);//количество файлов на странице
$files = array_values(myscandir('./' . $dir));//листинг файлов
$count = count($files);//получаем количество файлов
$page = intval($_GET['page']);//получаем номер страницы
//перекидываем на первую страницу, если вышли за пределы
$page = (($page - 1) * FILESONPAGE > $count || $page <= 0) ? 1 : $page;
$start = ($page - 1) * FILESONPAGE;
$end = $start + FILESONPAGE < $count ? $start + FILESONPAGE : $start + $count - $start;
$maxPage = ceil($count / FILESONPAGE);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Проект №1</title>
</head>
<body>
<ul>
<?
for ($i = $start; $i < $end; $i++) {
echo '<li><a href="' . pathinfo($files[$i])['filename'] . '">' . getLinkName($dir . '/' . $files[$i]) . '</a></li>';
}
?>
</ul>
<?
if ($page > 1) echo '<a href="?page=' . ($page - 1) . '">назад</a>';
$j = 0;
for ($i = $page + 1 <= $maxPage ? $page - 1 : $page - 2; $i <= $maxPage; $i++) {
if ($i > 0 && $j < 3) {
if ($i == $page) echo '<b>' . $i . '</b>';
else
echo '<a href="?page=' . $i . '">' . $i . '</a>';
$j++;
}
if ($j > 3) break;
}
if ($page < $maxPage) echo '<a href="?page=' . ($page + 1) . '">вперед</a>';
?>
</body>
functions.php
<?
$dir = 'data/';
function myscandir($dir, $sort = 0)
{
$list = scandir($dir, $sort);
if (!$list) return false;
if ($sort == 0) unset($list[0], $list[1]);
else unset($list[count($list) - 1], $list[count($list) - 1]);
return $list;
}
file.php
<?php
require_once 'functions.php';
$files = array_values(myscandir('./'.$dir));
for($i = 0; $i < count($files); $i++) {
if(pathinfo($files[$i])['filename'] == $_GET['file']) $file = $files[$i];
}
if(!$file) exit('File not found');
$lines = @explode("\n", file_get_contents($dir.'/'.$file));
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Проект №1</title>
</head>
<body>
<h1><?=@$lines[0]?></h1>
<p><?=@$lines[1]?></p>
<p><?=@$lines[2]?></p>
</body>