Как я могу обрезать строку после 20 слов в PHP?
Для ограничения слов я использую следующий маленький код:
$string = "hello world ! I love chocolate."; $explode = array_slice(explode(' ', $string), 0, 4); $implode = implode(" ",$explode); echo $implode;
$ Имплант даст: здравствуй, мир! I
Я сделал свою функцию:
function summery($text, $limit) { $words=preg_split('/\s+/', $text); $count=count(preg_split('/\s+/', $text)); if ($count > $limit) { $text=NULL; for($i=0;$i<$limit;$i++) $text.=$words[$i].' '; $text.='...'; } return $text; }
function limitText($string,$limit){ if(strlen($string) > $limit){ $string = substr($string, 0,$limit) . "..."; } return $string; }
это вернет 20 слов. Я надеюсь, что это поможет
Предположим, у нас есть строковые переменные $ string , $ start и $ limit . Для этого мы можем позаимствовать 3 или 4 функции из PHP. Это:
и, наконец, implode () для объединения элементов массива в усеченный строка ..
function truncateString($string, $start, $limit){ $stripped_string =strip_tags($string); // if there are HTML or PHP tags $string_array =explode(' ',$stripped_string); $truncated_array = array_splice($string_array,$start,$limit); $truncated_string=implode(' ',$truncated_array); return $truncated_string; }
Это так просто ..
Надеюсь, это было полезно.
$text='some text'; $len=strlen($text); $limit=500; // char if($len>$limit){ $text=substr($text,0,$limit); $words=explode(" ", $text); $wcount=count($words); $ll=strlen($words[$wcount]); $text=substr($text,0,($limit-$ll+1)).'...'; }
function limit_word($start,$limit,$text){ $limit=$limit-1; $stripped_string =strip_tags($text); $string_array =explode(' ',$stripped_string); if(count($string_array)>$limit){ $truncated_array = array_splice($string_array,$start,$limit); $text=implode(' ',$truncated_array).'...'; return($text); } else{return($text);} }
а как же
chunk_split($str,20);
Запись в руководстве по PHP