форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / Как взять из переменной определённое количество слов?
Автор Сообщение
Serg
Участник

1818
# Дата: 23 Фев 2006 03:07


Есть переменная, она содержит текст. Как можно сделать, чтобы текст, так сказать, обрезался до определённого количества слов (не букв!)?

SergeyA
Участник

495
# Дата: 23 Фев 2006 03:44


Cчитай пробелы между словами, это позволит тебе сосчитатьслова

Serg
Участник

1818
# Дата: 23 Фев 2006 04:09


SergeyA, а можно пример?

acsid
Alfa Guru

2388
# Дата: 23 Фев 2006 05:37


Serg
щитать по пробелам это бред тк. если человек поставил 2 пробела у тебя получится одно пустое слово.. хм хотя можно потом кадое слово проверить на isset..

Serg
Участник

1818
# Дата: 23 Фев 2006 05:48


Напишите пример пожалуйста.

acsid
Alfa Guru

2388
# Дата: 23 Фев 2006 05:48 ° Поправил: acsid


$var="всякий текст с пробелами ... ...";//---текст
$var=trim($var);//---убираем пробелы с конца
for ($i =0; $i < count($var); $i++) {//---щитаем строки
$count=explode(" ", $var[$i]);//---эксплоидаем строки по пробелам

if(isset($count[$i]){//---если это не пробел
$get3 =$count[rand(0,count($count)-3)];//---выводим 3ри случайных
}
}

можна так проверить ещё:
if($count[$i]!=" "){//---если это не пробел

пробуй сам) мне впадлу тестить..)

Андрей
Алексеевич

2125
# Дата: 23 Фев 2006 05:54 ° Поправил: Андрей


$string = 'фраза, где считаем слова';
$string = preg_replace( '/([^\r\n|\n]*[ ]{2,})/', ' ', $string );
$array = explode(' ', $string);

$koli4estvo_slov = sizeof( $array );
$array_strict = array_splice( $array, $x ); // где $x - макс кол-во слов.

$string = implode ( ' ' , $array_strict); // Строка с определённым кол-вом слов.


Но тут немного не то - для такого метода, нужно удалить все лишние пробелы...

DM53
Участник

232
# Дата: 23 Фев 2006 05:54


А я предлагаю через регулярки извратится

<?php
$text = 'Есть переменная, она содержит текст. Как можно сделать, чтобы текст, так сказать, обрезался до определённого количества слов (не букв!)?'; //Переменная
$i = 5; //Количество слов
preg_match_all('/(\S+\s+){'.$i.'}/im',$text,$result);
echo $result[0][0];
?>

acsid
Alfa Guru

2388
# Дата: 23 Фев 2006 05:56


white_pawn
для такого метода, нужно удалить все лишние пробелы...
ток как определить что они лишние?)

Serg
Участник

1818
# Дата: 23 Фев 2006 05:58


acsid, white_pawn, DM53

Спасибо, друзья

Андрей
Алексеевич

2125
# Дата: 23 Фев 2006 06:00 ° Поправил: Андрей


preg_match_all('/(\S+\s+){'.$i.'}/im',$text,$result);
Зачем модификатор i? (Всмысле в этом примере)

ток как определить что они лишние?)
Всмысле если два и более пробела, то заменить на один.

DM53
Участник

232
# Дата: 23 Фев 2006 06:53


А я его везде на всяк пожарный ставлю

Serg
Участник

1818
# Дата: 23 Фев 2006 07:04


Вот так сработало:
<?
$pie=explode(" ",$title);
$c=count($pie);
$anus="";
for ($i=0; $i < $c; $i++) {
if ($i==14) {
break;
}
$anus.=" ".$pie[$i];
}
echo "$anus";
?>

Андрей
Алексеевич

2125
# Дата: 23 Фев 2006 10:06


$anus
Лол.

smallcms
Участник

2754
# Дата: 23 Фев 2006 10:29


white_pawn
это фигня. раз сутки сидел за скриптом. начал прописывать очередную переменную. что-то не так. присмотрелся: $conf['Для продолжения...

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:31135, gzipped size:8854

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]