|
|
|
| Вот тут нашол такой вывод
<?
if (isset($_GET['start']) && is_numeric($_GET['start'])){
$start = $_GET['start'];
}
$file = file("text.txt");
$count = count($file);
$file = array_reverse($file);
if (empty($start) || $start < 0) $start = 0;
for ($i = 0; $i < ceil($count / 10); $i ++){
$num = $i * 10;
if ($num != $start){
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$num."><B>".($i + 1)."</B></a> ";
} else {
echo "<font size=2>".($i + 1)."</font> ";
}
}
if ($count > $start + 10){
$count = $start + 10;
}
?>
<br>
<?
for ($i = $start; $i < $count; $i ++){
echo $file[$i]."<BR>";
}
?>
|
Проблема в том что он выводит все ссылки на страницы так 1 2 3 4 5 6 7 8 и так далее
А можно сделать так << < 1 2 3 4 5 > >>
Вывот из текстового файла
Или дайте ссылочку на такое с понятным обьяснением | |
|
|
|
|
|
|
|
для: XoLoD
(19.03.2007 в 14:00)
| | Поиск по форуму тебе поможет | |
|
|
|
|
|
|
|
для: mihdan
(19.03.2007 в 14:04)
| | В основном всё с MYSQL но мне надо вывод из файла ненашол я конкретного | |
|
|
|
|
|
|
|
для: XoLoD
(19.03.2007 в 14:50)
| | А в чем проблема возьми из статей что тут лежат и переделай пару строк на работу с файлами или прикажешь за тебя писать??? | |
|
|
|
|
|
|
|
для: mihdan
(19.03.2007 в 17:00)
| | Неполучается | |
|
|
|
|
|
|
|
для: XoLoD
(19.03.2007 в 17:16)
| |
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Переменная хранит число сообщений выводимых на станице
$num = 25;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_row($result);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>
На этом первая часть закончена. Двумерный массив postrow хранит все поля таблицы post, необходимые для отображения станицы. Вот пример как можно организовать вывод сообщений.
<?php
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>".$postrow[$i]['name']."</td>
<td>".$postrow[$i]['time']."</td></tr>
<tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
}
echo "</table>";
?>
Теперь надо организовать навигацию. Формируем составляющие будущей навигации.
Коды стрелки «в начало» и «назад» поместим в одну переменную, также поступим и со стрелками «в конец» и «вперед».
<?php
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
<a href= ./page?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
<a href= ./page?page=' .$total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
?>
|
Вот это меня устраивает но я незнаю как мне сделать чтобы он не из базы брал
вот так у меня есть
if (empty($p))
{
$d='1';
}
else
{
$d = $p;
}
$buffer = @file_get_contents("http://www.beeonline.ru/demo/chat?chat=$chat");
$pattern = "|<P CLASS='user'>([^<]+)[^>]+>([^<]+)[^>]+>([^<]+)[^>]+>([^\r]+)|i";
preg_match_all($pattern,$buffer,$out,PREG_SET_ORDER);
$f = '15';
$obsum = $d * $f;
$nasum = $obsum - $f;
for($i=$nasum; $i< $obsum; $i++)
{
if(!isset($out[$i][1]))
{
$s=''; break;
}
else
{
$msg = str_replace("<IMG CLASS='picture' SRC=\"","<img src=\"http://www.beeonline.ru/demo/chat",$out[$i][4]);
$msg = str_replace("\n","",$msg);
$msg = str_replace("<span class='message'><i>","",$msg);
$msg = str_replace("</i></span>","",$msg);
$msg = str_replace("'","'",$msg);
$msg = str_replace(""","\"",$msg);
$msg = stripslashes(str_replace("&","&",$msg));
$ni = str_replace("(помощник босса)",">*",$out[$i][2].">");
$ni = str_replace("(гость)",">+",$ni);
$ni = str_replace("(БОСС)",">#",$ni);
$ni = str_replace(">#>",">#",$ni);
$ni = str_replace(">+>",">+",$ni);
$ni = str_replace(">*>",">*",$ni);
print "<br><font color=blue>".$out[$i][1]."</font><br><b>CHAT-$chat-".$ni."</b><br>".$msg."";
}
}
if($d == '1')
{
}
else
{
$z = $d-1;
print "<br><a href=\"show.php?p=$z&chat=$chat\"><<Назад</a>";
}
if(isset($s))
{
print "<br><a href=\"show.php?chat=$chat\">Начало</a>";
}
else
{
$d = $d+1;
print "<br><a href=\"show.php?p=$d&chat=$chat\">Далее>></a>
<br><a href=\"show.php?chat=$chat\">Проверить новые</a>";
}
|
| |
|
|
|
|
|
|
|
для: XoLoD
(19.03.2007 в 17:19)
| | непоможете? :-( | |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 09:10)
| | посмотри вот это
http://www.softtime.ru/info/articlephp.php?id_article=33 | |
|
|
|
|
|
|
|
для: devil
(20.03.2007 в 09:41)
| | Я это и смотрел. Только я непойму как мне обработать получаемые данные в цикле чтобы потом посчитать строки | |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 10:55)
| |
<?php
$msg = str_replace("<IMG CLASS='picture' SRC=\"","<img src=\"http://www.beeonline.ru/demo/chat",$out[$i][4]);
$msg = str_replace("\n","",$msg);
$msg = str_replace("<span class='message'><i>","",$msg);
$msg = str_replace("</i></span>","",$msg);
$msg = str_replace("'","'",$msg);
$msg = str_replace(""","\"",$msg);
$msg = stripslashes(str_replace("&","&",$msg));
$ni = str_replace("(помощник босса)",">*",$out[$i][2].">");
$ni = str_replace("(гость)",">+",$ni);
$ni = str_replace("(БОСС)",">#",$ni);
$ni = str_replace(">#>",">#",$ni);
$ni = str_replace(">+>",">+",$ni);
$ni = str_replace(">*>",">*",$ni);
print "<br><font color=blue>".$out[$i][1]."</font><br><b>CHAT-$chat-".$ni."</b><br>".$msg."";
?>
|
как мне это в цикле обработать и получить количество строк которые получатся после обработки??? | |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 15:17)
| | видимо, самый простой способ -
for($num=0; ; $num++)
if(!isset($out[$i][1]))
break;
|
В $num окажется число строк. | |
|
|
|
|
|
|
|
для: Trianon
(20.03.2007 в 16:30)
| | И что я не так делаю?
<?php
$buffer = @file_get_contents("http://www.beeonline.ru/demo/chat?chat=newsboss");
$pattern = "|<P CLASS='user'>([^<]+)[^>]+>([^<]+)[^>]+>([^<]+)[^>]+>([^\r]+)|i";
preg_match_all($pattern,$buffer,$out,PREG_SET_ORDER);
for($num=0; ; $num++)
{
if(!isset($out[$i][1]))
{
break;
}
else
{
$msg = str_replace("<IMG CLASS='picture' SRC=\"","<img src=\"http://www.beeonline.ru/demo/chat",$out[$i][4]);
$msg = str_replace("\n","",$msg);
$msg = str_replace("<span class='message'><i>","",$msg);
$msg = str_replace("</i></span>","",$msg);
$msg = str_replace("'","'",$msg);
$msg = str_replace(""","\"",$msg);
$msg = stripslashes(str_replace("&","&",$msg));
$ni = str_replace("(помощник босса)",">*",$out[$i][2].">");
$ni = str_replace("(гость)",">+",$ni);
$ni = str_replace("(БОСС)",">#",$ni);
$ni = str_replace(">#>",">#",$ni);
$ni = str_replace(">+>",">+",$ni);
$ni = str_replace(">*>",">*",$ni);
print "<font color=blue>".$out[$i][1]."</font><br><b>CHAT-$chat-".$ni."</b><br>".$msg."<br>";
}
}
print "$num";
?>
|
| |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 17:52)
| | Сам туплю простите. Разобрался | |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 17:56)
| | Что я не так сделал?
<?php
$buffer = @file_get_contents("http://www.beeonline.ru/demo/chat?chat=newsboss");
$pattern = "|<P CLASS='user'>([^<]+)[^>]+>([^<]+)[^>]+>([^<]+)[^>]+>([^\r]+)|i";
preg_match_all($pattern,$buffer,$out,PREG_SET_ORDER);
$f=15; //Сколько записей выводить на страницу
$plink = 3; // Число ссылок вокруг выбранной страницы
//------------------------------------------
if (empty($p))
{
$p='1';
}
else
{
$p = $p;
}
for($i=0; ; $i++)
{
if(!isset($out[$i][1]))
{
break;
}
else
{
$msg = str_replace("<IMG CLASS='picture' SRC=\"","<img src=\"http://www.beeonline.ru/demo/chat",$out[$i][4]);
$msg = str_replace("\n","",$msg);
$msg = str_replace("<span class='message'><i>","",$msg);
$msg = str_replace("</i></span>","",$msg);
$msg = str_replace("'","'",$msg);
$msg = str_replace(""","\"",$msg);
$msg = stripslashes(str_replace("&","&",$msg));
$ni = str_replace("(помощник босса)",">*",$out[$i][2].">");
$ni = str_replace("(гость)",">+",$ni);
$ni = str_replace("(БОСС)",">#",$ni);
$ni = str_replace(">#>",">#",$ni);
$ni = str_replace(">+>",">+",$ni);
$ni = str_replace(">*>",">*",$ni);
print "<font color=blue>".$out[$i][1]."</font><br><b>CHAT-$chat-".$ni."</b><br>".$msg."<br>";
}
}
//------------------------------------------
$first = $i - ($f * ($p - 1));
$second = $i - ($f * $p) + 1;
if ($second < 1)
{
$second = 1;
}
$number = (int) (($i + $f) / $f);
$line = "";
// Проверяем есть ли ссылки слева
if($p - $plink > 1)
{
$line .= "<a href=\"guest.php?p=1\"><<</a>";
// Есть
for($in = $p - $plink; $in<$p; $in++)
{
$line .= "<a href=guest.php?p=$in>$in</a>";
}
}
else
{
// Нет
for($in = 1; $in<$p; $in++)
{
$line .= "<a href=guest.php?p=$in>$in</a>";
}
}
// Проверяем есть ли ссылки справа
if($p + $plink < $number)
{
// Есть
for($in = $p; $in<=$p + $plink; $in++)
{
if($p == $in)
$line .= "$in";
else
$line .= "<a href=guest.php?p=$in>$in</a>";
}
$line .= "<a href=guest.php?p=$number>>></a>";
}
else
{
// Нет
for($in = $p; $in<=$number; $in++)
{
if($p == $in)
$line .= "$in";
else
$line .= "<a href=guest.php?p=$in>$in</a>";
}
}
echo "<br>$line";
?>
|
он не делит на страницы, а показывает все сообщения | |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 18:18)
| | Самое интересное количество страниц правильное и меню навигации правильно отображает, а вот сообщения на страницы не делит | |
|
|
|
|
|
|
|
для: XoLoD
(20.03.2007 в 19:05)
| | Помогите ПЛЗ всю голову сломал. Где ошибка у меня? Ссылки на страници выводит правильно, а вот сообщения выводит все не делит их :-( | |
|
|
|
|
|
|
|
для: XoLoD
(21.03.2007 в 11:08)
| | а что у вас такое
нигде не заметил
скорее всего в этом и проблема | |
|
|
|
|
|
|
|
для: KPETuH
(21.03.2007 в 11:20)
| | Это принимаем номер страницы | |
|
|
|
|
|
|
|
для: XoLoD
(21.03.2007 в 11:58)
| | Я понимаю что это номер страницы, вы мне покажите где он у вас принимается :) я этого в вашем коде не заметил. | |
|
|
|
|
|
|
|
для: KPETuH
(21.03.2007 в 12:17)
| | непомогло всё равно также | |
|
|
|
|
|
|
|
для: XoLoD
(22.03.2007 в 09:55)
| | Вот два вида постраничной навигации основаной на файлах (одна закоментирована) плешите от этого...
<?
##########################
# #
# Постраничная навигация #
# #
# Представлены два вида #
# #
##########################
# Количество на одной странице
$kolvo=2;
# Читаем файл
$text=file('text.txt');
if ($kolvo>count($text)) $kolvo=count($text);
# Определяем кол-во страниц
$nomber=(int)(count($text)/$kolvo);
if (((float)(count($text)/$kolvo)-$nomber)!=0) $nomber++;
//echo $nomber;
# Проверяем передана ли страница
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
# Определяем начало или конец
$start = ($page - 1)*$kolvo + 1;
$end = $page*$kolvo;
# Выводим содержимое страницы
for ($i=$start-1;$i<=$end-1;$i++)
{
if ($i>count($text)) break;
echo $text[$i]."<br>";
}
# Постраничная навигация №1
if ($page>2) $nazad="<a href=$_SERVER[PHP_SELF]?page=".($page-1)."><</a> ";
if ($page<$nomber-1) $dalee=" <a href=$_SERVER[PHP_SELF]?page=".($page+1).">></a>";
if ($page-1>0) $pageleft="<a href=$_SERVER[PHP_SELF]?page=".($page-1).">[".(($page-2)*$kolvo + 1)."..".(($page-1)*$kolvo)."]</a> ";
if ($page+1<$nomber) $pageright="<a href=$_SERVER[PHP_SELF]?page=".($page+1).">[".(($page)*$kolvo + 1)."..".(($page+1)*$kolvo)."]</a> ";
if ($page+1==$nomber) $pageright="<a href=$_SERVER[PHP_SELF]?page=".($page+1).">[".(($page)*$kolvo + 1)."..".count($text)."]</a> ";
if ($page==$nomber)
{
$curent=" [".(($page-1)*$kolvo + 1)."..".count($text)."] ";
}
else
{
$curent=" [".(($page-1)*$kolvo + 1)."..".(($page)*$kolvo)."] ";
}
echo $nazad.$pageleft.$curent.$pageright.$dalee;
# Постраничная навигация №2
/*for ($i=0;$i<$nomber;$i++)
{
# Выделение жирным шрифтом текущей страницы
if ($i+1==$page)
{
if ($i==$nomber-1 )
{
echo "<a href=$_SERVER[PHP_SELF]?page=".($i+1)."><b>[".($i*$kolvo + 1)."..".count($text)."]</b></a>";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".($i+1)."><b>[".($i*$kolvo + 1)."..".(($i+1)*$kolvo)."]</b></a> ";
}
}
else
# Обычные страницы
{
if ($i==$nomber-1 )
{
echo "<a href=$_SERVER[PHP_SELF]?page=".($i+1).">[".($i*$kolvo + 1)."..".count($text)."]</a>";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".($i+1).">[".($i*$kolvo + 1)."..".(($i+1)*$kolvo)."]</a> ";
}
}
} */
?>
|
| |
|
|
|
|
|
|
|
для: KPETuH
(22.03.2007 в 10:18)
| | блин. Это совсем не то. Неполучается у меня. | |
|
|
|