Как я могу установить номер страницы при отображении содержимого текстового файла - PullRequest
1 голос
/ 17 июня 2019

У меня есть текстовый файл, и я хочу показать номер страницы для отображения на странице
например, мой текстовый файл имеет 100 строк, я могу показать их с массивом в таблице, каждая строка в одной строке, как показано ниже:
это мой пример текстового файла:

mycontent-54564-yoursdsd
condsadtent-5544564-fyfdfdsd
....
//convert into array
$lines = file('myfile.txt');
//count number of lines
$numbers=count($lines);
//show every line in a row of table :
foreach ($lines as $line) {
      $line=explode("-", $line);
      echo "<tr>";
      echo "<td>$line[0]</td>";
      echo "<td>$line[1]</td>";
      echo "<td>$line[2]</td>";
      echo "</tr>";
}

Я хочу иметь пагинацию с PHP для просмотра этой таблицы, например, показывать каждые 10 строк текстового файла на одной странице, строки от 1 до10 на странице 1, строки с 11 по 20 на странице 2 и т. Д. ... как я могу это сделать?
спасибо

1 Ответ

1 голос
/ 17 июня 2019

Вы можете использовать array_chunk ( документация );

массив Разбивает массив на массивы с элементами размера. Последний кусок может содержать элементы меньше, чем размер.

С этим вы меняете свой код на:

$pages = array_chunk($lines, 10); // create chunk of 10 fr each page

foreach($pages as $i => $page) {
    echo "This is page num $i" . PHP_EOL;

    foreach ($page as $line) { // for each line in page
        $line=explode("-", $line);
        echo "<tr><td>$line[0]</td><td>$line[1]</td><td>$line[2]</td></tr>";
    }
}

Отредактировано

Если вы хотите загрузить только данные для конкретной страницы, выполните:

$pageNum = _Session["page"]; // of whatever way you use to get page num - you may want to do -1 as array index starting from 0 - up to you
$pages = array_chunk(file('myfile.txt'), 10);

foreach ($pages[$pageNum] as $line) { // for each line in page you want
    $line=explode("-", $line);
    echo "<tr><td>$line[0]</td><td>$line[1]</td><td>$line[2]</td></tr>";
}
...