 |
 |
Форум сетевых администраторов » Программирование » PHP » Пагинация - или деление по приблизительному количеству символов
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+


Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус:  |
quote: Первоначальное сообщение от Tagore
polo
RomikChef говорит что:
echo substr($str,$_GET['pos'],strpos($str,".",$_GET['pos']+1500));
Ð_то как?
Ð_то правильно. Только, если добавлять замечание (одно из) Поло, то выглядеть должно так:
PHP:
echo substr($str,$_GET['pos'],strpos($str,". ",$_GET['pos']+1500));
а по поводу абзацев: это совершенно спкойно реализуется регулярными выражениями. Как - мб позже напишу =))
Сообщение было отредактировано Rumata 22-04-2003 в 13:04
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
22-04-2003 13:00 |
|
|


Администратор
|
| Можно еще такой вариант, так пришел в голову... |
[сооб. #41697]
22-04-2003 20:36 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Можно еще такой вариант, так пришел в голову может и требует доработки но точно будет игнорировать последнее предложение:
PHP:
preg_match_all("/(.{1500,}.s+)/sU", $text, $textarray);
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
22-04-2003 20:36 |
|
|
Участник+
|
[QUOTE]Первоначальное сообщение от polo
[B]Можно... |
[сооб. #41701]
22-04-2003 21:14 |
|
Участник+


Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус:  |
quote: Первоначальное сообщение от polo
Можно еще такой вариант, так пришел в голову может и требует доработки но точно будет игнорировать последнее предложение:
PHP:
preg_match_all("/(.{1500,}.s+)/sU", $text, $textarray);
Бррр. А что он по-твоему должно делать???
А! он собака тут все пропарсил. Теперь понятно.
Попробую так: code:
Ты пробовал, работает?
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
22-04-2003 21:14 |
|
|
Администратор
|
| Вообще делает следующее: ищет последовательность... |
[сооб. #41766]
23-04-2003 15:07 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Вообще делает следующее: ищет последовательность из любых сиволов не менее 1500 до точки и любого пробельного символа. Вроде как работает но последнее предложение не показывает. Наверное нужно сделать (.s+)|(.$).
polo добавил 23-04-2003 в 15:10:03:
не, так не пашит.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-04-2003 15:07 |
|
|
Сибиряк
|
polo
Откуда ты это все знаешь?
Хорошо, а... |
[сооб. #41784]
23-04-2003 19:19 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
polo
Откуда ты это все знаешь?
Хорошо, а как сделать, что бы он спрос с БД делил на эти части и сделал еще и JumnMenu ("dropdown box") со всеми страницами, то-есть навигацию?
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-04-2003 19:19 |
|
|
Администратор
|
quote: Откуда ты это все знаешь?
Ð_то что... |
[сооб. #41787]
23-04-2003 20:00 |
|
|
Сибиряк
|
| Да нет же. Просто не понимаю. Как можно это... |
[сооб. #41789]
23-04-2003 20:06 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
Да нет же. Просто не понимаю. Как можно это все придумать. Самому. Быстро.
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-04-2003 20:06 |
|
|
Участник+
|
| Ð_-э-э а что там придумывать, со всем моим респектом... |
[сооб. #41797]
23-04-2003 22:17 |
|
Участник+


Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус:  |
Ð_-э-э а что там придумывать, со всем моим респектом к Поло =))
2Тагоре, кокретизируй вопрос. btw сообщи уровень своих познаний в пхп и mysql - этих данных в твоем профиле нет.
Rumata добавил 23-04-2003 в 22:31:08:
quote: Первоначальное сообщение от polo
Вообще делает следующее: ищет последовательность из любых сиволов не менее 1500 до точки и любого пробельного символа. Вроде как работает но последнее предложение не показывает.
имхо код стоит поменять так:
PHP:
$str = "bla bla nla. asdfasd. fdsfd fafsasf. asasdwe fdscz asdvc. afasffas. afafs vcxrqw cvea.";
preg_match_all("/.{15,}?\./s",$str,$out,PREG_PATTERN_ORDER);
list($out) = $out;
print_r($out);
Хех у форума глючный парсер - он парсит \ как спецсимвол собака. Именно поэтому, Поло, я с первого раза в товй код и не вкурил - посмотри, как он выглядит в твоем первом посте =))
Сообщение было отредактировано Rumata 23-04-2003 в 22:34
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-04-2003 22:17 |
|
|
Сибиряк
|
То-есть $str может быть вызов из БД?
Ð_умата,... |
[сооб. #41829]
24-04-2003 07:04 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
То-есть $str может быть вызов из БД?
Ð_умата, мои познания дальше CSS (а его я знаю уж точно хорошо) не оченб радуе и меня самого, то-есть полностью руками, без никаких интсрументов, новый, хитрий код написать не смогу. Пока что.
Тогда вопрос - а как сделать, что бы ссылки с dropdownenu сделать на какждый отрезанный кусок?
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-04-2003 07:04 |
|
|
Администратор
|
Подсчитываешь кол-во страниц:
[php]
for ($i=0;... |
[сооб. #41830]
24-04-2003 07:10 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Подсчитываешь кол-во страниц:
PHP:
for ($i=0; $i<count($out); $i++) {
$pgnum = $i+1;
echo "<option value=$pgnum>$pgnum</option>";
}
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-04-2003 07:10 |
|
|
Участник+
|
quote: То-есть $str может быть вызов из БД?
в... |
[сооб. #41831]
24-04-2003 07:12 |
|
Участник+

Зарегистрирован: Aug 2002
Место проживания: Новосибирск
Публикаций: 67
Статус:  |
quote: То-есть $str может быть вызов из БД?
в переменную $str нужно считать данные из БД..
quote: Тогда вопрос - а как сделать, что бы ссылки с dropdownenu сделать на какждый отрезанный кусок?
а где этот каждый отрезаный кусок?
если например:
article.html?id=10
и эта статья разбита на страницы, то ссылки будут вроде этой:
article.html?id=10&page=10;
и потом в article.html, когда идет печать нужного куска (страницы), пишешь, например:
print $pages[$page]
($pages - это массив страниц, который получаем любым из описанных выше способов..)
__________________
**censored**
Web Site Design and Development
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-04-2003 07:12 |
|
|
Сибиряк
|
polo
Ок, буду смотреть, чо там получиться.... |
[сооб. #41881]
24-04-2003 17:55 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
polo
Ок, буду смотреть, чо там получиться. Да вот как их снова всех вместе загнать, если у нас не одна глава одной книги в одной ячейки, а когда есть несколько глав, каждая из которыйх в отдельной ячейке, но все из одной книги, у них один parent_id.
Tagore добавил 24-04-2003 в 19:42:01:
quote: Первоначальное сообщение от peteK
в переменную $str нужно считать данные из БД..
Типа fetch_row или не важно как?
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-04-2003 17:55 |
|
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
PHP:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<?$string = "Çàäîëæàâ äåíüãè ó åâðîïåéöà, òû ìîæåøü îñîáî íå äåðãàòüñÿ. Ñïîêîåí êàê îâöà, òóï êàê äóá, ê òîìó îí íå èìååò ñëàâíóþ ïðèâû÷êó ñâåðõ íåîáõîäèìîãî çàáîòèòüñÿ î ñâîåì êîøåëêå, íå è íå. Åñëè, íàïðèìåð, êàêîé-òî çíàêîìûé ïîïðîñèò åìó äî çàâòðà äâàäöàòêó, òî îí, ÷èñòî äëÿ ïîðÿäêà, çàïèøåò íà ïåðâîé ïîïàâøåéñÿ áóìàæêå òâîå èìÿ è… íàñêîðî ïîçàáóäåò. Ãîâîðÿ ÷òî ýòî ìåëî÷ü, îí áóäåò òðîíóò, êîãäà òû ïðèíåñåøü âñþ ñóììó â ñëåäóþùèé äåíü îáðàòíî. Êàê-òî äàæå íåóäîáíî çà íåãî, íà äóøå òÿæåëî.
Íå ïîäõîäè ñ ýòèì âîïðîñîì ê ðóññêîìó! Îí ñðàçó æå ñòàíåò îáðàùàòüñÿ ê òåáå ïî èìåíè, öåëîâàòü â ùåêó è îáíèìàòü êàê ðîäíîãî áðàòà. Ïîòîì îí íàïåòüñÿ ñ òîáîé îò âå÷íîé òîñêè è çàïëàòèò åùå è çà òàêñè äîìîé, çàñóíóâ ñîðîê ðóáëåé çà òâîé âîðîòíèê, íå ìîðãíóâ êðàåøêîì ãëàçà. Òâîÿ íåîáõîäèìîñòü äàñò ïî÷óâñòâîâàòü ãëóáèíó åãî ñîáñòâåííîãî ñîñòðàäàíèÿ, òîëùèíó êîøåëüêà è ïîäòîëêíåò ê ðàçìûøëåíèÿì î ñóùíîñòè ìèðîâîãî äîáðà. Õîòÿ, ìîæåò, çàâòðà ðàíî óòðîì îí îêîí÷àòåëüíî ïîéìåò, ÷òî ó íåãî íå õâàòàåò, íå õâàòàåò ñîâñåì íåìíîãî íà áóòûëêó, à òîñêà ðàñòåò è îñåäàåò, çàõâàòûâàåò, áðîñàåò è íåñåò, òîïèò, âäîõíîâëÿÿ ãóáèò è… îñóøàåò.  äíåâíèêå, íà êðàþøêå íåðàçáîð÷èâûì ïî÷åðêîì îí íàïèøåò: \"Êàê ïðèÿòíî áûòü õîðîøèì, êîãäà ýòî íå òðåáóåò ñâåðõ-óñèëèé îò òîãî, êòî æåðòâóåò ñîáîé. Ñåãîäíÿ ÿ ñïàñ ÷åëîâåêà.\"
Íà ÿçû÷åñêîì Êàâêàçå òåáå îòäàäóò çîëîòûå óêðàøåíèÿ, ðîäíóþ äî÷ü, æåíó, åå áîëòëèâûõ ïîäðóã è áàáóøêó íà ïðåêðàñíî óáðàííîì êîíå èç ñåðåáðà, ïðè îäíîì ðàçãîâîðå î äåíüãàõ. Êàâêàçöó íå çà÷åì çíàòü, ê ÷åìó òåáå äåíüãè. Äóìàåò îí - ðàç ïåðåñòóïèë ÷åëîâåê ÷åðåç ñâîþ ãîðäîñòü, çíà÷èò åñòü îñíîâàòåëüíàÿ òîìó ïðè÷èíà è îí íå èìååò ïðàâî îòêàçàòü. Ìîæåò áûòü òû êóïèøü âåðåâêó ñ êóñêîì õîçÿéñòâåííîãî ìûëà, à ìîæåò ïîäóøêó èç ãóñèíûõ ïåðüåâ äëÿ ëþáèìîé, íî åìó âñå îäíî, ÷òî ÷åðíî, ÷òî áåëî, ÷òî ñâåòëî, ÷òî ãîâíî. Êîãäà òû, íàêîíåö, íåäåëþ ñïóñòÿ, íàãðåáåøü äîñòàòî÷íî ìåëî÷è è íà åãî æå êîíå äîñêà÷åøü äî äâåðåé åãî äîìà, ñåðüåçíî ïîäóìàé - ñòîèò ëè âîéòè? Âåäü òû îáèäèøü åãî ýòèì, çàòðîíåøü âîïðîñ ÷åñòè è äîëãà, ìåæäó âàìè ìîæåò âîçíèêíóòü âðàæäà…
Ïîäóìàé ïåðåä òåì êàê â ñëåäóþùèé ðàç çàäîëæàòü äåíåã, ñòîèò ëè?
";
preg_match_all("/.{1500,}?./s", $string, $out, PREG_PATTERN_ORDER);
list($out) = $out;
print_r($out);
echo "<br><br>";
for ($i=0; $i<count($out); $i++) {
$pgnum = $i+1;
echo "<form name=\"form1\" id=\"form1\">";
echo "<select name=\"menu1\" onchange=\"MM_jumpMenu('parent',this,0)\">";
echo "<option value=$pgnum>$pgnum</option>";
echo "</select>";
echo "</form>";
}
?>
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
02-05-2003 16:32 |
|
|
|
Формат времени GMT. Текущее время 12:55.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 1.52718997 seconds (99.64% PHP - 0.36% MySQL) with 26 queries.
|
 |