Я вообще сам новичок, но может можно так:
| Код | $text_of_file=join('',file('textnews.dat')); $message_array=explode('<>',$text_of_file);
$messages_to_page = 10; //сколько сообщений на страницу $current_page = (isset($_GET['page'])) ? $_GET['page'] : 0; //номер текущей страницы, переданный в адресной строке броузера (если не передан, то 0) $size_of_array = sizeof($message_array); //всего сообщений $pages_count = ceil($size_of_array/$messages_to_page); //количество страниц
//создаём переменную page_link, где будут ссылки на пред. и след. страницу switch($current_page) { case $pages_count -1: { $page_link = ($current_page == 0) ? '' : '<a href="?page='.($current_page-1).'">Предыдущая страница</a>'; break; } case '0': { $page_link = ($current_page == $pages_count - 1) ? '' : '<a href="?page='.($current_page+1).'">Следующая страница</a>'; break; } default: { $page_link = '<a href="?page='.($current_page-1).'">Предыдущая страница</a> | <a href="?page='.($current_page+1).'">Следующая страница</a>'; } }
//считаем с какого по какое сообщение выводить на эту страницу (переменные start и end соответственно) if(($current_page * $messages_to_page > 1) && ($current_page * $messages_to_page < $size_of_array)) { $start = $current_page * $messages_to_page; if($current_page * $messages_to_page + $messages_to_page > $size_of_array) { $end = $size_of_array; } else { $end = $current_page * $messages_to_page + $messages_to_page; } } else { $start = 0; $end = ($messages_to_page > $size_of_array) ? $size_of_array : $messages_to_page; } //и выводим эти сообщения while($start < $end) { echo "<font color=#000000><center> $message_array[$start]</center></font>"; $start++; } //и ссылки выводим echo $page_link;
|
Основа из топика "то, что должен знать каждый о php". Попытался изменить немного, может это и неэффективно, может можно гораздо проще и короче? Но так вроде работает! |