<?php for($last=$i=0; ($i!=200)&&($last=strpos($str, ' ', $last+1)); $i++); $last || $last=strlen($str); echo substr($str, 0, $last); ?>
function cut_string($string,$n) { if (empty($string)) return FALSE; $str = explode(' ',$string); if (count($str)<=1) return $string; else { $i = 0; $newstring = ''; while ($i<$n) { if (empty($str[$i])) break; $newstring = $newstring.' '.$str[$i]; $i++; } return $newstring; } }
Im-ieee (28 Августа 2012 / 13:39) Если уж использовать массивы, то хотя бы так - $arr=explode(' ', $str, 201); unset($arr[200]);
<?php $text="тут должно быть не менее 200 слов через пробел"; $text = explode(" ",$text); $i = 0; while($i!=200) { echo $text[$i]."<br>"; $i++; } ?>
<?php function do_except($string, $word_limit) { $words = explode(' ', $string, ($word_limit + 1)); if (count($words) > $word_limit) array_pop($words); echo implode(' ', $words).' ...'; } ?>