Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод определенного кол-во слов, Количество слов 
:(
    Опции темы
sayber
Дата 31.1.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



С помощь какой функции можно вывести из текста только определенное кол-во слов.

К примеру из текста с 1000 слов вывести только 400.

Или ограничение по символам
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 31.1.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Код

<?php
$rest = substr("abcdef", 1);    // возвращает "bcdef"
$rest = substr("abcdef", 1, 3); // возвращает "bcd"
$rest = substr("abcdef", 0, 4); // возвращает "abcd"
$rest = substr("abcdef", 0, 8); // возвращает "abcdef"

// к отдельным символам можно обращаться с помощью фигурных скобок
$string = 'abcdef';
echo $string{0};                // выводит a
echo $string{3};                // выводит d
?> 


то???


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
sayber
Дата 31.1.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



Да, спасибо. Но это по символам. 
А хотелось бы по кол-во слов.

Т.к. когда выводишь символы - substr считает еще и теги внутри текста

Прим:
<img src="" alt="ya"> bla bla
и если задать вывод на 3, то вывидет <im а не  bla 
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 31.1.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



sayber убирай теги))) как понял ты отображаешь неполный текст и даешь ссылку - читать далее?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
bars80080
Дата 31.1.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



разбей текст по пробелам в массив и выведи нужно количество
PM MAIL WWW   Вверх
MoLeX
Дата 31.1.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(bars80080 @  31.1.2008,  12:01 Найти цитируемый пост)
разбей текст по пробелам в массив и выведи нужно количество

вариант, но в том же <img src="1.gif" title="asdas"> до чертиков пробелов...

Добавлено через 8 минут и 54 секунды
sayber вот, тока тэги выризаются
Код

<?php
    $text = "Hello, hello, <img src=\"1.gif\"> Hello Hello, hello, <img src=\"1.gif\"> Hello Hello, hello, <img src=\"1.gif\"> Hello <br> Hello, hello, <img src=\"1.gif\"> Hello";
    $array = explode(" ", strip_tags($text));
/*
   не чего умнее не мог придумать для вывода  :crazy 
*/
for($i=0; $i<5; $i++)
{
    echo $array[$i]." ";
}    
?>



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
sayber
Дата 31.1.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



MoLeX,  ... Так в тексте теги то нужны.  А тут получается что вывожу только 5 слов.

 smile 

Года 2 назад делал такое. А теперь хз... что то голову забил ерундой.

Это сообщение отредактировал(а) sayber - 31.1.2008, 13:05
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 31.1.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



сделай какуй-нить проверку, что если тег - то оставляем как есть...


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
GeneralElectric
Дата 31.1.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Для тех, кто не понял.
Формализация - это составление правил, которые определяют понятие.
В данном случае мы имеем понятие "слово", которого не существует в языке PHP. Следовательно, PHP не может работать со "словами". чтобы научить его отрезать сто слов, сначала надо научить его тому, что такое слово. Т.е. описать слово средствами языка.

Интуитивно некоторые участники дискуссии полагают, что слова - это разделенные пробелами участки строки. Но это не обязательно так
В тексте "слово -  не воробей(поговорка)" сколько слов? И это в простом тексте - не HTML, с которым все только хуже.

Цитата(sayber @  31.1.2008,  13:03 Найти цитируемый пост)
ак в тексте теги то нужны.  

Ого. Вон оно как повернулось.
Боюсь, задача "вырезать из фрагмента HTML текст определенного размера, остающийся валидным HTML" - задача, на порядки более сложная, чем "вывести определенное кол-во слов".
Ведь тег может состоять из двух частей - открывающей и закрывающей. И здесь главной проблемой становится закрыть все открытые теги, а не отсчитать сто слов.
PM MAIL   Вверх
skyboy
Дата 31.1.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(GeneralElectric @  31.1.2008,  12:29 Найти цитируемый пост)
В данном случае мы имеем понятие "слово", которого не существует в языке PHP

поправка: среди шаблонов регулярных выражения есть \b - граница слова и \B - не граница слова. Не могу сказать, что проверял на всех возможных кодировках все возможные знаки препинания, но все же: есть такое дело.
Цитата(GeneralElectric @  31.1.2008,  12:29 Найти цитируемый пост)
Ведь тег может состоять из двух частей - открывающей и закрывающей. И здесь главной проблемой становится закрыть все открытые теги, а не отсчитать сто слов.

Кроме того, если брать общий случай, разметка HTML - контекстно-зависимый язык. К примеру, вся разметка внутри <![CDATA[]]> должна обрабатываться "как текст" вместе с "вроде бы как тегами". А внутри <script> - могут вообще не обрабатываться, так как не будет выводиться(точнее, лучше уж тогда полностью выбросить все содержимое <script ...>...</script>). И таких исключений хватает...
sayber, а не проще ли "заставить" того, который набирает/вставляет "полный текст", формировать и сокращенную форму?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1044 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.