моя preg_match('/ ^ (?: [[:alnum:][:punct:]]+ \s* ) {20} /xs', $str, $match);
тогда в $match[0] будет ровно 20 словСпустя 215 сек.
это как, на пальцах можешь показать?
З.Ы. у меня ток, одно в голове взорвать переменную по пробелам и соединить ее по for x<=20 .
Хорошая идея =)
$str = implode(' ', explode(' ', $str, 20));
P.S. Последний вариант быстрее чем через регулярку.
Хорошая идея =)
$str = implode(' ', explode(' ', $str, 20));
P.S. Последний вариант быстрее чем через регулярку.
все хорошо но php в $str[20] - запихивает все остальное, как избавится в массиве от последнего элемента?
З.Ы. о нашел решение:
array_pop – Извлечь последний элемент массива
mixed array_pop ( array &array )
З.Ы.Ы. вот какой говнокод получился- его как-нибудь можно улучшить?$short_description = explode(' ', $str, 10);
$tmp_array = array_pop($short_description);
$short_description = implode(' ', $short_description);
===
$str = implode(' ', array_slice(explode(' ', $str, 21),0,20));
sub_str($text, 0, 1000);
Но если делаеш например в CMS краткую новость то используй <cut> или отдельное полеСпустя 149 сек.
это как, на пальцах можешь показать?
preg_match("#(.{0, 1000})#", $text, $out); так ?= ))
== [man]substr[/man]