X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> SubStr()
asbury
asbury
Topic Starter сообщение 3.6.2009, 15:48; Ответить: asbury
Сообщение #1


Вот такой вопрос воявился, гдето краем уха слышал, но не нашел в гугле.
Есть функция substr() которой можно задать параметр считывания с и до какого символа, но мне это не совсем подходит, так как будут обрубаться слова.

А возможно сделать так: Чтобы выводились к примеру первые 10 слов из текста? Или начиная с пятого слова - первые 10. Именно по словам текст рубить а не по знакам.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Zippovich
Zippovich
сообщение 3.6.2009, 15:54; Ответить: Zippovich
Сообщение #2


считайте слова по пробелам (табуляторам, переводам строк, точкам и пр.) и обрубайте.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 4.6.2009, 0:17; Ответить: asbury
Сообщение #3


это иф элс условие как я понимаю, а как моожно задать? Как зачтавить считать пробелы?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
derweber
derweber
сообщение 8.6.2009, 21:49; Ответить: derweber
Сообщение #4


разбей строку функцией explode() и получишь массив со словами
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 9.6.2009, 14:25; Ответить: Apay
Сообщение #5


строку нужно разбивать на слова с помощью preg_split(), explode() не учитывает всех разделителей слов
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 12.6.2009, 23:16; Ответить: asbury
Сообщение #6


А не затруднит вас на конкретном примере, предположим переменной $mess продемонстрировать, чтобы из базы были взяты первые 10 слов? Или первое предлоежение? Или второе предложение?
Я на пхп.су нашел, но что-то больно заумно написано(
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 13.6.2009, 0:01; Ответить: Apay
Сообщение #7


[PHP]$ten_words = preg_split( '/[^\\w\\d_]+/', $text, 11 ); // первые 10 слов плюс остаток
array_pop( $ten_words ); // убираем последний эл-т массива[/PHP]примерно так
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 13.6.2009, 0:13; Ответить: asbury
Сообщение #8


Спс , завтра попробую потестить)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 13.6.2009, 15:44; Ответить: Galen
Сообщение #9


Во ещё какую штуку нашёл:
str_word_count

(PHP 4 >= 4.3.0, PHP 5)
str_word_count -- Возвращает информацию о словах, входящих в строку
Описание

mixed str_word_count ( string string [, int format] )

Подсчитывает количество слов, входящих в строку string. Если необязательный аргумент format не передан, возвращается целое число, равное количеству слов. В случае, если аргумент format передан, возвращается массив, содержимое которого зависит от значения этого аргумента. Ниже описаны допустимые значения аргумента format и соответствующие им возвращаемые значения.

  • 1 - возвращается массив, содержащий все слова, входящие в строку string.
  • 2 - возвращается массив, индексами которого являются позиции в строке, а значениями - соответствующие слова.

Эта функция считает словами последовательности алфавитных символов, возможно, включающие, но не начинающихся с "'" и "-". Набор символов, считающихся алфавитными, зависит от текущей локали.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 23.6.2009, 18:01; Ответить: asbury
Сообщение #10


Подскажите в чем мой косяк пожалуйста

Notice: Array to string conversion in w:\home\localhost\www\pan\index.php on line 51


[PHP]
do {
$text = $myrow['text'];
$ten_words = preg_split( '/[^\\w\\d_]+/', $text, 11 ); // первые 10 слов плюс остаток
printf ("<div class='news-block'><div class='news-header' style='padding-bottom: 5px;'>
<span class='news-date' style='color: #B3C9DD; font-weight: bold; font-size: 10pt;'>%s</span>
<span class='news-title' style='font-family: Georgia; color: #BFC8D8; font-size: 13pt; border-bottom: 1px #5aa8b4 dashed;margin-left: 20px;'>%s</span>
<span></span></div><div class='news-body' style='color: #DCDCDC; font-size: 12pt; padding-bottom: 15px; border-bottom: 1px #b2b2b2 dotted; text-align: justify; font-family: Century;'>%s<div>",$myrow['date'],$myrow['name'],$ten_words);
$number = $myrow['id'];
$numOL = table_itemscount("com"," WHERE num=$number");
echo "<a style='color: #818181; font-size: 10pt; display: block; text-align: right; text-decoration:none;' href='index.php?news=$number'>Комментарии: $numOL | Подробнее...</a></div></div></div>";
array_pop( $ten_words ); // убираем последний эл-т массива
}
while ($myrow = mysql_fetch_array ($result)); }
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 28.3.2024, 16:35
Дизайн