|
|
|
| Всем привет!
-Знаю тема битая, но на найду решения..
надо сделать вывод из тхт файла сообщ по 10 шт на странице...
пошел по этой схеме и что то не верно пишу а что не понимаю.. Кто знает- помогите! или дайте свой вариант достойного вывода...
Спасибо.
$meny=10;
$rezult=$abc-$meny;
$massiv=file("text.txt");
$abc=explode("^^", $massiv);
$abc=array_reverse($abc);
for($i=$abc; $i>=$rezult; $i--){
print $massiv[$i];
} | |
|
|
|
|
|
|
|
для: Denandi
(23.06.2007 в 13:33)
| | Возможно вас заинтересует скрипт по ссылке http://www.softtime.ru/scripts/pager.php. | |
|
|
|
|
|
|
|
для: cheops
(23.06.2007 в 14:06)
| | Спасибо cheops, очень оперативно, но я имел ввиду обычный вывод N-ного количества записей из тхт!!! :) просто гостевая- не постраничный вывод!!!
Извените если не так выразился.Приведенный выше код Не могу реализовать вот прошу помощи или какие то достойные ссылки. а то глаза устают столько кода "лапатить"..:) | |
|
|
|
|
|
|
|
для: Denandi
(23.06.2007 в 14:46)
| | $massiv=array_slice(file("text.txt"), 0, N); | |
|
|
|
|
|
|
|
для: bronenos
(23.06.2007 в 16:59)
| | Спасибо bronenos, но твоя схема НЕ работает!
______________________________________
вот пробывал изменить содержимое...:)
ни-хрена!!! Выводит все сообщения на экран, вместо 10 положенных..:(
$meny=10;
$rezult=$value-$meny;
$massiv=join(' ',file("text.txt"));
$abc=explode("^^", $massiv);
$abc=array_reverse($abc);
foreach ($abc as $value)
if($value>0)
{
for($i=count($value); $i>=$rezult; $i--)
print $abc[$i];
} | |
|
|
|
|
|
|
|
для: Denandi
(24.06.2007 в 05:16)
| | как это не работает? оно режет массив от нуля до N ...
вы что-то путаете ...
array_slice
file | |
|
|
|
|
|
|
|
для: CrazyAngel
(24.06.2007 в 06:04)
| | Вот именно не работает...
Пропадает все кроме вводной формы.
Нет, это гдето касяк в коде вывода.. хотя по логике должно работать.. :( | |
|
|
|
|
|
|
|
для: Denandi
(24.06.2007 в 06:10)
| | их надо с конца показывать? | |
|
|
|
|
|
|
|
для: bronenos
(24.06.2007 в 06:26)
| | Ну, вообще то было бы правильнее если бы новые сообщения были вверху..
хотя мне сча до жОпы сверху-снизу..:)))
просто принципиально хочу найти причину "поломки"......
________________________________________________________________
$meny=10;
$rezult=$value-$meny;
// $massiv=array_slice(file("text.txt"), 0, N);
$massiv=implode(' ', file('',"text.txt"));
$abc=explode("^^", $massiv);
$abc=array_reverse($abc);
foreach ($abc as $value)
{
if($value>0)
{for($i=count($value); $i>=$rezult; $i--)
print $abc[$i];
} | |
|
|
|
|
|
|
|
для: Denandi
(24.06.2007 в 06:32)
| | array_reverse + array_slice | |
|
|
|
|
|
|
|
для: Denandi
(23.06.2007 в 13:33)
| | Вообще ничего не понимаю. На вторую строку вашего кода естественно появится ошибка:
Undefined variable: abc
Поставим выражение $rezult=$abc-$meny уже после того как вы определили массив, но опять получите при выполнении этой строки:
Fatal error: Unsupported operand types
Я понимаю так, что должно быть $rezult=count($abc)-$meny, а в цикле $i=count($abc), если уж на то пошло. Или это только у меня "неправильный" php? | |
|
|
|
|
|
|
|
для: sim5
(24.06.2007 в 10:09)
| | Denandi, возможно, мои наработки помогут? //$mess-массив с сообщениями,
//$number-кол-во на страницу,
//$page-номер страницы
//$array-массив с сообщениями,
$rows=sizeof($array);
//кол-во станиц
$pages=ceil($rows/$number);
$start=$page*$number;
$stop=$start+$number;
$i=$start;
while(($i<$rows)&&($i<$stop)){echo $array[$i].'<br>';}
думаю, вывод ссылок труда не составит, вычисляются они с использованием $pages. | |
|
|
|
|
|
|
|
для: sim5
(24.06.2007 в 10:09)
| | Все верно sim5 ошибки присутствуют это я уже не стал их тогда исправлять так как
времени не было. но тем ни мение пока не работает... да и вообще чужой код- ПОТЕМКИ! :)) ладно, похоже надо до вых дожить и попытаться еще...
Всем- Спасибо! | |
|
|
|
|
|
|
|
для: Denandi
(24.06.2007 в 22:59)
| | вот, может пригодится, выводит 10 записей + постраничная навигация.
<?
// сама функция навигации
function navigator($nazvanie,$path,$addpage,$onlug,$lines,$url,$twt){
$perp = 'Перейти на стр.: ';
$razdle=' ';
if($path==""){$path="1";}
if($addpage<'1'){$addpage="1";}
$line ="$nazvanie: ";
$pages = ceil($lines/$addpage);
$onlug = (int)($onlug/2);
for($i=1; $i <= $pages; $i++){
if($pages > $pages-$path and $path <= $pages){
$e = ($i*$addpage)-$addpage;
if($i=="1"){$e++;}
if($addpage=="1" and $i!="1"){$e++;}
if( $path == $i ) {
$second=$addpage*$path;
$first=$second-$addpage;
if($second > $lines){$second = $lines;}
if($second < "0"){$second = "0";}
$line.= "\n$razdle<font color=ff0000>$e</font>";
}
if( $onlug+$path+1 > $i and $path-$onlug-1 < $i and $path != $i) {
$line.= "\n$razdle<a href=\"$url?$twt=$i";
$line.= "\" title=\"$perp $i\">$e</a>";
}
if( $onlug+$path+1 == $i){
$line.= "\n<a href=\"$url?$twt=$i";
$line.= "\" title=\"$perp $i\"> >></a>";
}
if( $path-$onlug-1 == $i){
$line.= "\n<a href=\"$url?$twt=$i";
$line.= "\" title=\"$perp $i\"><< </a>";
}
if( (2*$onlug)+$path+1 == $i){
$line.= "\n<a href=\"$url?$twt=$i";
$line.= "\" title=\"$perp $i\">...</a>";
}
if( $path-(2*$onlug)-1 == $i){
$line.= "\n<a href=\"$url?$twt=$i";
$line.= "\" title=\"$perp $i\">...</a>";
}
}
}
if(strlen($line)>"11"){return $line = array($line,$first,$second); }
else{ return FALSE; }
}
// есди есть данные в командной строке, то выводим их
if (isset($_GET)) {foreach ( $_GET as $key => $value ) {$$key=$value;}}
// вставляем верхний шаблон html кода
#include("top.htm");
// если не указана какая страница, то выводим в программу, что онв первая
if($page==""){$page="1";}
// считываем базу в массив строк, в нашем случае база называется 'anek.dat'
$general=@file('anek.txt');
// считаем сколько всего строк в базе
$lines=count($general);
// говорим, что исполняемый файл 'help.php', называйте его как хотите
$adres = 'help.php';
/* вставляем данные в функцию, где
"Анекдот" - название разбивки
$page - в командной строке будет отображать текущую навигацию,
передается автоматически при работе функции,
10 - посколько анекдотов показывать,
5- по сколько показывать навигационных страничек
$lines -количество всех анекдотов в базе
$adres - исполняемый php файл
'page' - должно по буквам совпадать со словом разбивки
в командной строке '$page', но без знака доллара
то есть слова $page и 'page' во вставке далее в функцию меняйте как хотите,
но не забыватй у последнего слова убирать '$'
Все это дело вставляем в функцию
*/
$line_arr = navigator("Анекдот",$page,10,5,$lines,$adres,'page');
// в итоге получается $line - линия навигации
$line = $line_arr[0];
// какой первый анекдот выводить, именно на этой страничке
$first = $line_arr[1];
// какой последний анекдот выводить, именно на этой страничке
$second = $line_arr[2];
/* проверяем есть ли такая страница в базе, если есть, то
печатаем саму линию навигации, если нет выводим "Такой странички нет в базе".
Поставьте в командной строке броузера "help.php?page=1300", то есть
пользователь сам поставил страницу, которой нет и вы увидите результат
*/
if($line != ''){
echo"<p><font face=Verdana size=2 color=000080>$line</font> \n </p>";
}
else{
echo"Такой странички нет в базе.......\n
<br><a href=help.php>вернуться на первую страницу</a>";
}
/* дошли до вывода самих анекдотов, они выводятся в обратном порядке
в базе они размещены так: 'анекдот::дата::'
строка ниже дает нам возможность дабыть сами анекдоты по строкам
list($message,$date)=explode("::", $general[$i]);
$message - сам анекдот
$date - дата добавления анекдота, но ее мы выводить не будем
$nomber - номер очередного анекдота
в конце цикла печатаем сам анекдот
echo"<p align=justify><font color=000080>$nomber.</font> $message</p>\n";
послеэтого цикл повторяется, пока $first и $second будут еще
удовлетворять условиям, то есть первый и последний анекдот, именно на
этой странице, то есть это ограничители, которые ранее мы определили
*/
for ( $i = $lines-$first-1; $i >= $lines-$second; $i--)
{
list($message,$date)=explode("::", $general[$i]);
$nomber=$lines-$i;
echo"<p align=justify><b>$nomber.</b> $message</p>\n";
}
// еще раз печатаем линию навигации, но уже внизу
echo"<p><font face=Verdana size=2 color=000080>$line</font> \n </p><p>\n </p>";
// вставляем нижний шаблон html текста
#include("end.htm");
?>
|
Взято отсюда http://omsk777.ru/all.php?act=navigat
Или сразу скачать полный скрипт http://omsk777.ru/all.php?act=scrypt&scrypt=navigator&nomer=14 | |
|
|
|
|
|
|
|
для: BaSh
(24.06.2007 в 23:16)
| | Угу BaSh, спасибо - буду разбираться.. | |
|
|
|
|
|
|
|
для: Denandi
(25.06.2007 в 05:18)
| | Объясните вторую из этих строк.
$massiv=file("text.txt");
$abc=explode("^^", $massiv);
|
что значит разбить массив? | |
|
|
|
|
|
|
|
для: Trianon
(25.06.2007 в 09:53)
| | Привет всем!
Я делал без implode, просто заранее формировал ...
$abc ="$msg.^^.$email.^^.$name.^^.$data. \n\r";
потом это должно дробится ...переворачиваться и выводиться циклом...:))
___________________________
вот последний код-рабочий все переворачивает, дробит, выводит... но мне надо что бы вывод на стр был только 10 сообщений --а не весь массив!! :)
_________________________
$massiv=join("",file("text.txt"));
$q=explode("^^",$massiv);
$q=array_reverse($q);
if($q > 0){
for($i=count($q); $i>=10; $i--)
print $q[$i];}
-----------------------------------
Народ, кто знает.........
почему эта честь кода НЕ ОТСЧИТЫВАЕТ ДО 10 а, просто тупо
выводит весь массив??????? | |
|
|
|
|
|
|
|
для: Denandi
(26.06.2007 в 00:43)
| | print $i покажет. | |
|
|
|
|
|
|
|
для: Denandi
(24.06.2007 в 22:59)
| | Потёмки? при чем я? :D | |
|
|
|
|
|
|
|
для: bronenos
(26.06.2007 в 08:26)
| | :)))))...... bronenos..... Я имел ввиду, Разбираться в чужем коде, это как рыться в чужой башке - ПАТЕМКИ!!!!! :))
Лично к тебе это не относится.. но, твою функию обязательно обкатаю! :)) Спасибо за помощь! | |
|
|
|
|
|
|
|
для: Denandi
(23.06.2007 в 13:33)
| | на http://wr-script.ru/ есть скрипт гостевой... глянь там... как раз для тебя.. | |
|
|
|
|
|
|
|
для: Denandi
(23.06.2007 в 13:33)
| | Гостевая на файлах бред, как и все остальное на файлай. Неужели мускула нет? | |
|
|
|
|
|
|
|
для: indexer
(27.06.2007 в 15:10)
| | Гостевая на файлах бред, как и все остальное на файлай. Неужели мускула нет?Так никто и не спорит...это так, ради квалификации..
Которая как понятна - слаба.> | |
|
|
|