Справка с PHP Pagination Script для базы данных с плоским файлом

У меня есть несколько вопросов относительно скрипта Pagination PHP для базы данных с плоским файлом, который я нашел. Я разместил сценарий ниже.

<?php echo '<html><body>'; // Data, normally from a flat file or some other source $data = "Item1|Item2|Item3|Item4|Item5|Item6|Item7|Item8|Item9|Item10"; // Put our data into an array $dataArray = explode('|', $data); // Get the current page $currentPage = trim($_REQUEST[page]); // Pagination settings $perPage = 3; $numPages = ceil(count($dataArray) / $perPage); if(!$currentPage || $currentPage > $numPages) $currentPage = 0; $start = $currentPage * $perPage; $end = ($currentPage * $perPage) + $perPage; // Extract ones we need foreach($dataArray AS $key => $val) { if($key >= $start && $key < $end) $pagedData[] = $dataArray[$key]; } foreach($pagedData AS $item) echo '<a href="/'. $item .'/index.php">'. $item .'</a><br>'; if($currentPage > 0 && $currentPage < $numPages) echo '<a href="?page=' . ($currentPage - 1) . '">« Previous page</a><br>'; if($numPages > $currentPage && ($currentPage + 1) < $numPages) echo '<a href="?page=' . ($currentPage + 1) . '" class="right">Next page »</a><br>'; echo '</body></html>'; ?> 

Моя первая проблема, похоже, находится в строке 9. Я могу изменить строку:

 $currentPage = trim(@$_REQUEST[page]); 

Но это изменение не исправит ошибку, оно просто скроет ее. Что нужно сделать в строке 9, чтобы избавить мою страницу от ошибки?

Во-вторых, я хотел бы получить данные по строке 5 по-другому. Я хотел бы получить данные из текстового файла, назовем его «items.txt», который имеет записи, как показано ниже, по одному в каждой строке.

 Fun Games Toys Sports Fishing Pools Boats 

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

Наконец, я хотел бы включить ссылки на «Первая страница» и «Последняя страница», а также «Предыдущая страница» и «Следующая страница», как и текущий код.

Я прошу прощения за мои неряшливые сообщения, но буду очень благодарен всем, кто мог бы помочь мне понять изменения, необходимые для получения желаемых результатов. Благодаря…..

Проблема с линией 9

$_REQUEST[page] имеет две отдельные проблемы.

1) page читается как имя константы, потому что она не цитируется. Затем PHP замечает, что не существует константной вызываемой page , поэтому возникает предположение, что вы имели в виду строку- page которая была бы, если бы page была процитирована, и вызывает ошибку, чтобы уведомить вас. Поэтому вместо этого используйте $_REQUEST['page'] .

2) 'page' не обязательно является ключом $_REQUEST поскольку данные не гарантируются. Поэтому вы не можете ссылаться на $_REQUEST['page'] прежде чем убедитесь, что он существует. Это может быть сделано isset($_REQUEST['page']) .

Тогда ваш окончательный код должен выглядеть примерно так.

 if (isset($_REQUEST['page'])) { $currentPage = $_REQUEST['page']; } else { $currentPage = 'some default value'; } 

Проблема с источником данных

Функция file() считывает строки файла в массив – например, четвертое значение массива также является четвертой строкой в ​​файле. Поэтому вы можете установить $dataArray просто как $dataArray = file('text.dat'); ,