![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
sayber |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.7.2006 Где: Moscow - qwerty Репутация: нет Всего: нет |
С помощь какой функции можно вывести из текста только определенное кол-во слов.
К примеру из текста с 1000 слов вывести только 400. Или ограничение по символам --------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber © Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
то??? -------------------- Amazing ![]() |
|||
|
||||
sayber |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.7.2006 Где: Moscow - qwerty Репутация: нет Всего: нет |
Да, спасибо. Но это по символам.
А хотелось бы по кол-во слов. Т.к. когда выводишь символы - substr считает еще и теги внутри текста Прим: <img src="" alt="ya"> bla bla и если задать вывод на 3, то вывидет <im а не bla --------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber © Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
sayber убирай теги))) как понял ты отображаешь неполный текст и даешь ссылку - читать далее?
-------------------- Amazing ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
разбей текст по пробелам в массив и выведи нужно количество
|
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
вариант, но в том же <img src="1.gif" title="asdas"> до чертиков пробелов... Добавлено через 8 минут и 54 секунды sayber вот, тока тэги выризаются
-------------------- Amazing ![]() |
|||
|
||||
sayber |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 30.7.2006 Где: Moscow - qwerty Репутация: нет Всего: нет |
MoLeX, ... Так в тексте теги то нужны. А тут получается что вывожу только 5 слов.
![]() Года 2 назад делал такое. А теперь хз... что то голову забил ерундой. Это сообщение отредактировал(а) sayber - 31.1.2008, 13:05 --------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber © Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
сделай какуй-нить проверку, что если тег - то оставляем как есть...
-------------------- Amazing ![]() |
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
Для тех, кто не понял.
Формализация - это составление правил, которые определяют понятие. В данном случае мы имеем понятие "слово", которого не существует в языке PHP. Следовательно, PHP не может работать со "словами". чтобы научить его отрезать сто слов, сначала надо научить его тому, что такое слово. Т.е. описать слово средствами языка. Интуитивно некоторые участники дискуссии полагают, что слова - это разделенные пробелами участки строки. Но это не обязательно так В тексте "слово - не воробей(поговорка)" сколько слов? И это в простом тексте - не HTML, с которым все только хуже. Ого. Вон оно как повернулось. Боюсь, задача "вырезать из фрагмента HTML текст определенного размера, остающийся валидным HTML" - задача, на порядки более сложная, чем "вывести определенное кол-во слов". Ведь тег может состоять из двух частей - открывающей и закрывающей. И здесь главной проблемой становится закрыть все открытые теги, а не отсчитать сто слов. |
|||
|
||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
поправка: среди шаблонов регулярных выражения есть \b - граница слова и \B - не граница слова. Не могу сказать, что проверял на всех возможных кодировках все возможные знаки препинания, но все же: есть такое дело.
Кроме того, если брать общий случай, разметка HTML - контекстно-зависимый язык. К примеру, вся разметка внутри <![CDATA[]]> должна обрабатываться "как текст" вместе с "вроде бы как тегами". А внутри <script> - могут вообще не обрабатываться, так как не будет выводиться(точнее, лучше уж тогда полностью выбросить все содержимое <script ...>...</script>). И таких исключений хватает... sayber, а не проще ли "заставить" того, который набирает/вставляет "полный текст", формировать и сокращенную форму? |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |