Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > деление txt файла на страницы


Автор: americanets 27.9.2006, 19:50
Столкнулся с проблемой деления файла на страницы, делит должен по 10 строк на страницу но начинает как бы с конца: 
1) на первой странице то что осталось 2 э но не 10 строк остальные нормально 
2) обратная нумерация 5 4 3 2 1 следующая 1514 13 12 11 10 9 8 7 6 

Код

<?php
$data = file('datatext.txt');
$count = count($data);
$list  = 10;
$all = ceil($count/$list);
if (empty($_GET['page'])) {
    $page = 1;
} else {
    $page = (int) $_GET['page'];
}
$j = ($count-1)-(($page-$all)*$list*(-1));
$i = $j-$list;
for(; $i<$j && $j>=0; $j--) 
{
    echo $data[$j];
}
echo '<br><font  size="5">Страницы:&nbsp;</font>'."\n";
for ($i=1;$i<=$all;$i++) {
    if ($page==$i) {
        echo '<strong><font color="">'.$i.'</font></strong> ';
    } else {
        echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> '."\n";
    }
}
?> 

Автор: SamDark 28.9.2006, 10:04
americanets
Читать файл надо с другой стороны.

Автор: -=Ustas=- 28.9.2006, 10:08
SamDark, вообще то он его целиком в массив читает smile
americanets, ты это имел ввиду?
Код

$data  = file('datatext.txt');
$count = count($data);
$list  = 10;
$all   = ceil($count / $list);
$page = (isset($_GET['page'])) ? intval($_GET['page']) : 1;

if ($page == 1) {
    $start  = 0;
    $finish = $list;
} else {
    $start  = ($page * $list) - $list;
    $finish = $page * $list;
} 

for ($i = $start; $i < $finish; $i++) { 
    echo $data[$i].'<br>';
}

echo '<br><font  size="5">Страницы:&nbsp;</font>'."\n";
for ($i = 1; $i <= $all; $i++) {
    if ($page == $i) {
        echo '<strong><font color="">'.$i.'</font></strong> ';
    } else {
        echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> '."\n";
    }
}

Автор: americanets 28.9.2006, 12:28
да все работает спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)