Вывод текста по колличеству слов PHP
Нужна функция, которая бы брала целый текст и делила его по колличеству слов.
нужно для разбивки статей по страницам. php |
Самое первое и простое, что пришло в голову, так это загонять каждое слово (знак препинания, идущий после определённого слова, относиться к этому слову) в элементы массива (в качестве разделителя выступает пробел), а потом выводить друг за другом нужное количество элементов массива
То есть, примерно так PHP код:
$string-строка с текстом $limit-сколько слов выводить $page-номер страницы (начиная с 1) |
Ginger
если ты собираешься так делать статьи, то так нельзя!!! ты можешь раскинуть на разные страницы один обзац или один лист.... делить надо с логикой!!!! |
Vlad Drakula
ну а где конкретное предложение с логикой? vadimiron в принципе можно выводить по колличеству пробелов, но если текст делался, например, в дримвивере, то там может быть куча пробелов.. мне нужна функция которая бы определяла слово от пробела до пробела, когда между ними символы текста. массив не очень... |
Ginger
статьи писать в XML уже с разбиением на страницы. |
Vlad Drakula
статьи уже забиты в mysql |
Ginger
мои 5 копеек к предложению vadimiron - если бывает > 1 пробела, то потом каждое получившееся в результате explode "слово" еще и trim-нуть :) Vlad Drakula В принципе я не вижу криминала в этом подходе. Любой текстовый редактор по дефолту тоже абзацы и фразы рубит. Главное не слова ;) Ничего особенного в этом нет. И психологически привычно - в книгах же, в общем, так же бывает. |
mar
не погоди.. если я его тримну, так потом все слова будет слиты при выводе =) можно с начала заменить все 2-ые пробелы на один в цикле пока пробелов не бедет по одному... потом загнать в массив и выдувать по колличеству... так.. это можно попробовать =))) спасибо всем. если есть ещё предложения, желательно с кодом, please. |
Вот так с тримом
PHP код:
|
Может как нить так
PHP код:
|
mar
было: PHP код:
PHP код:
PHP код:
|
archy
не плохая мысль... mar а зачем применять trim, достаточно убить пустые строки! а если там стоит тег <pre> ? |
archy
мысль не плохая, но мне так не подходет. текст УЖЕ есть. всё. нужно посчитать слова, выдать 1000 на страницу. массивы не подходят, потому что они могут разбить хтмл таги в тексте. как Vlad Drakula уже продемонстрировал. |
Ginger
сколько не думал так и не смог ридумать ничего кроме того что предложил - archy т.е. рузное разбитие... |
Ginger
Я думал, у тебя простой текст, без ХТМЛ тегов. С ними сложнее. Есть такая мысль: делить по предложениям, то есть сначало подсчитать нужное количество слов, потом от этого места (где находится последнее слово для вывода на данную страницу) искать самую близжайшую точку, то есть конец предложения. Логика такова: если есть оформление с помощью тегов ХТМЛ, то оно распространяется на слова внутри одно предложения, то есть нет тегов, оформляющих несколько предложений. А слова надо искать между > и <, то вне тегов Примерный код напишу попозже, часов через 7, сейчас надо учиться |
vadimiron
у меня тоже завтра егзам по жава. так что позже обдумаю. первое, что пришло в голову по твоему предложению - в тексте не будет никаких хтмл тагов кроме - <br><u><i><b><ul><ol><li><a><img> загвоздка в том, что в лист <ul><ol><li> могут быть точки ... |
пардон - я тоже почему-то думала просто о тексте (без тегов).
|
mar и все
sorry, я вас запутала немного... |
Ginger
Если есть теги, то универсальным способом не решить эту проблему... Либо нужно нормализовать html (убрать лишние пробелы...), потом извращаться с regexp, чтобы не рубить на страницу внутри тега... Вообщем нужно хранить страницы в плейн-текст со своей ограниченной разметкой... |
Ладно, народ, спасибо что вы такой отзывчивый =)
я решали всё же заставить юзера вставлять спец теги в местах перелома статьи на страницы, потом просто их искать и разбивать.. так проще всего.. |
Время: 14:39. |
Время: 14:39.
© OSzone.net 2001-