Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Обрезать текст по слову
цитата
27/02/07 в 13:06
 pirate
подскажите как обрезать длинные дески, с сохранием целостности слов?
Например:
Dildofucked and tonguefucked teen hottie licks mature lesbian's pussy

если обрезать substr($desc,0,50)
получается
Dildofucked and tonguefucked teen hottie licks mat
слово обрезано

Что сделать чтобы получалось либо:
Dildofucked and tonguefucked teen hottie licks mature
либо
Dildofucked and tonguefucked teen hottie licks

Сохрание смысла не важно.
цитата
27/02/07 в 13:21
 webmaster779
алгоритм: разбиваешь на массив, в цикле присоединяешь по слову, если длина становится больше выходишь из цикла
цитата
27/02/07 в 13:29
 pirate
по-другому никак?
только регулярными не решается?
цитата
27/02/07 в 13:34
 vashman
webmaster779 писал:
алгоритм: разбиваешь на массив, в цикле присоединяешь по слову, если длина становится больше выходишь из цикла

Оффтопик:
<?
$letterscount=50;
$desc = "Dildofucked and tonguefucked teen hottie licks mature lesbian's pussy";
$words = explode(" ",$desc);
$subdesc = "";
$i=0;
while ($i<count($words)){
$sudbesc .= $words[$i]." ";
if (strlen($sudbesc) >= $letterscount)
break;
$i++;
}
echo $sudbesc;
?>
цитата
27/02/07 в 13:45
 webmaster779
vashman: smail44.gif
цитата
27/02/07 в 13:47
 pirate
Всех оценил, но придется так оставить.
Я искал изящное и короткое решение.
цитата
27/02/07 в 14:23
 vashman
webmaster779 писал:
vashman: smail44.gif

прикол в том что я именно так и писал. а потом в топик заглянул )
цитата
27/02/07 в 14:48
 asgor
есть такая фун-ия wordwrap

<?
list($str)=explode("\n",wordwrap("asdsad dasda dsda a sdsadsads sd",20));
echo $str;
?>
цитата
27/02/07 в 14:57
 localhost
$s="Dildofucked and tongue fucked young teen hottie licks mature lesbian's pussy";

preg_match("/^([\w \d \.,\'\"]{1,50} )/",$s,$ok);
print chop($ok[1]);


Эта страница в полной версии