Разделение на страницы

_RVK_

Новичок
Maloy
Пойди в общагу, найди нормального программиста, поставь ему пива и он за пару часов тебе все сделает. Серьезно, сам студентом был, от пива не просыхал ;)
 

Maloy

Новичок
Нечто
Я жте говорю, что не отбражается, после первого абзаца, т.е. если там даже обычный текст, а до функции вообще не доходит!

-~{}~ 11.01.05 14:07:

_RVK_
Кстати хорошая идея, только общага с программерами не знаю где. :)
 

_RVK_

Новичок
Кстати хорошая идея, только общага с программерами не знаю где.
г Новочеркасск ул. Энгельса 80. общ №11 :)

А если серьезно то файл это набор символов, и в нем нет абзацев, а есть символ переноса строки - "\n"
Это для информации. Еще для информации оператор return обрывает выполнение функции и возвращает значение.
Те, учи матчасть :)
 

Maloy

Новичок
_RVK_
Ну вот у меня после первого переноса \n полный обрыв в г.
Ладно, а ты в Саранске не знаешь случайно общагу с программерами? обзванил знакомых, говорят "глухарь"!
 

_RVK_

Новичок
Ладно, а ты в Саранске не знаешь случайно общагу с программерами
Не в Cаранске не знаю. А про \n я не просто так сказал ;) и про return тоже. Смотри алгоритм, тебе уже достаточно помогли, нужно хоть чуток и самому подумать.
 

Maloy

Новичок
_RVK_
Думал, не получается что-то.
Наверное надо иметь склад ума программера, а у меня склад медика, но учень нужен сейчас хотя бы на 5 минут пять минут и я бы точно все сделал, а функцию return я что-то в документации не отрыл, точнее я не отрыл русскую документацию!
 

Кром

Новичок
>точнее я не отрыл русскую документацию!

Это потому что кто-то не читает правила форума + FAQ, тем самым проявляя неуважения к участникам форума и тратя свое и их время.
 

_RVK_

Новичок
Maloy
return не функция а оператор.
то что нужно быть программером чтоб писать программы, это и ежу понятно.
Но тебе уже все написали, тебе осталось лишь чуток подумать, мне, честно, за тебя думать лень да и некогда, и я говорю о том, что сразу бросилось в глаза. Может там и другие ошибки есть.

Подскажу, только, что функция [m]file[/m] возвращает массив из строк файла. Строка всегда заканчивается на \n. Из этого следует, что твой цикл, когда ты проходишь по массиву возвращенному file, совершает лишь одну итерацию. Значит что-то его останавливает? Как я уже говорил return прекращает выполнение функции. Улавливаешь мысль? У тебя там, посреди цикла есть этот самый ретён. Всмотрись в него хорошенько, может его там ненадо?

Это чисто предположение. Разбираться в этом коде, да еще плохо отформатированном у меня нет ни желания не времени.
Итак, думаю, помог немало, чисто их уважения к медикам :)
 

Maloy

Новичок
_RVK_
Спасибо, полмаленьку начинаю врубаться! Будем пробовать!
 

Нечто

Психолог РНРClub
Maloy
Ты скобку куда дел перед $pages = [...] ? Вернись к моему коду и попробуй еще раз.
 

Maloy

Новичок
Да теперь я уже как-то сам додумался до этого
PHP:
<?php
function paginate_file($howmuch, $filename)
{
    $out = array();
    $strings = file($filename);
    $page_num = @$_GET['page'];

    $total_pages = ceil(count($strings) / $howmuch);
    if($page_num<1 || $page_num>$total_pages) $page_num = 1;
    $offset = ($page_num-1) * $howmuch;
    for($i=$offset; $i<($offset+$howmuch)&&isset($strings[$i]); $i++)
{
        $out[]=$strings[$i]; # добавляем в выходной массив
}
    $pages = range(1, $total_pages);

    if(stristr($strings[$i],'#img') )
    {
        $strings[$i] = str_replace('#','',$strings[$i]); # убираем декорации
        $strings[$i] = eval($strings[$i].';'); # выполняем строку кода
    }

            return array($out, $pages);
}


list($items, $pages) = paginate_file(20, "$f$f1$f2.txt");
$npages = count($pages);
if ($npages > 1)
{
echo '| ';
foreach($pages as $number) echo '<a href="'.$_SERVER["PHP_SELF"].'?page='.$number.'&f='.$f.'&f1='.$f1.'&f2='.$f2.'">'.$number.'</a> | ';
echo '<br>';
}
foreach($items as $item) print ($item."<br>\n");
?>
</p>

Думаешь у меня работает, как бы ни фиг.
Не читает он #img()# как кучок кода, просто как текст выводит.
Я вот в функции str_replace не разобрался.
Но точно че-то с к куском if{..}
 

Нечто

Психолог РНРClub
Maloy
Гыгыгы... ты опять все переколбасил!
PHP:
function paginate_file($howmuch, $filename) 
{ 
    $out = array(); 
    $strings = file($filename); 
    $page_num = @$_GET['page']; 

    $total_pages = ceil(count($strings) / $howmuch); 
    if($page_num<1 || $page_num>$total_pages) $page_num = 1; 
    $offset = ($page_num-1) * $howmuch; 
    for($i=$offset; $i<($offset+$howmuch)&&isset($strings[$i]); $i++) 
{ 
    if(stristr($strings[$i],'#img') ) 
    { 
        $strings[$i] = str_replace('#','',$strings[$i]); # убираем декорации 
        $strings[$i] = eval($strings[$i].';'); # выполняем строку кода 
    }
        $out[]=$strings[$i]; # добавляем в выходной массив 
} 
    $pages = range(1, $total_pages);  

            return array($out, $pages); 
}
и не меняй больше ничего.
 

Maloy

Новичок
Нечто
Гы гы исчезли #img# (прогресс)
А вот картинок нет. если мне тут только вот че сказали с вашим return xt-нить не так
PHP:
function img()
{
    global $f, $f1, $f2;
    static $nimg=0;
    $nimg++;
    return '<a href="img'.$f.$f1.$f2.$nimg.'.png"><img src="img'.$f.$f1.$f2.$nimg.'.png"></a>';
}
-~{}~ 11.01.05 22:02:

Ага поставил свое родное.
Правда картинки стали интересно выводится, перед всем текстом подряд!

-~{}~ 11.01.05 22:04:

Нечто
Не на русском!
 

Нечто

Психолог РНРClub
Ага поставил свое родное.
Твое родное выводит их независимо от моей функции.
сказали с вашим return xt-нить не так
Это, имхо, говорили про цикл в функции, где ты переставил кое-чего. Ищи, разбирайся. Я тоже не программер -- мог и ошибиться.
 

Нечто

Психолог РНРClub
Maloy, я дал тебе полностью рабочий код. Чего тебе еще нужно? Чтобы тебе его интегрировали в проект? Как _RVK_ уже сказал - раскошеливайся на пиво, неблагодарный =)
 

Maloy

Новичок
Нечто
Я бы раскошелился, если бы были в одном городе! Ну неужели так сложно доделать ведь все уже почти есть!
 
Сверху