|
|
|
| Полазив по Интернету, усовершенствовав коды с разных источников собрал ещё один вариант разбивки на страницы:
<?php
// Количество строк на лист
$num = 10;
$page = $_GET['p'];
if(!isset($page)) $page = 1;
$fp = @file('textfile.txt');
$all = count($fp);
if (floor($all/20) == ($all/20))
$allpages = floor($all/20); else $allpages = floor($all/20)+1;
for ($i=($page-1)*$num; $i<=(($page*$num<$all) ? $page*$num-1: $all-1); $i++)
{
echo $fp[$i].'<br>';
}
?>
|
Вполне рабочий вариант получился.
Юзать так: index.php?page=1
Вопрос: в коде понятно абсолютно всё, кроме строчки for ($i=($page-1)*$num; $i<=(($page*$num<$all) ? $page*$num-1: $all-1); $i++)
Не могли бы вы объяснить как она работает? (непонятнен знак ? и двоеточие) | |
|
|
|
|
|
|
|
для: PHPFan
(11.07.2005 в 16:02)
| | Ещё одна версия переделанная (с нормальной навигацией, комментариями) лежит в аттаче. Почему-то при вставке сюда текста Windows-1251 отображается кракозяблями.
Предыдущий вопрос в силе :) | |
|
|
|
|
|
|
|
для: PHPFan
(11.07.2005 в 16:02)
| | Я так понимаю, этим условием определяется конечная запись на текущей странице.
Это логическое выражение - проверяется выражение до ?, если оно истино, выполнятеся операторы до :, иначе - после :.
По сути Выражение ? Оператор1 : Оператор2 тоже самое, что
if (Выражение) {
Оператор1
} else {
Опреатор2
} | |
|
|
|
|
|
|
|
для: to4kaRU
(11.07.2005 в 17:10)
| | Спасибо за ответ. По логике работы похоже что это именно так. :)) | |
|
|
|