On Fri, February 3, 2006 10:54 am, Verdon Vaillancourt wrote: > I am using the following function (that I found in the user comments > on > php.net manual) for trimming the number of words accepted via a form > field > > // Truncation is by word limit, not character limit. So if you limit > // to 255, then it will cut off a text item to 255 words, not 255 > characters > function trim_text ($string, $truncation=250) { > $string = preg_split("/\s+/",$string,($truncation+1)); This splits it apart on any whitespace. > unset($string[(sizeof($string)-1)]); > return implode(' ',$string); This re-assembles it with spaces as the only whitespace. > } There's probably some way to do it with built-in functions, but here's a solution: function trim_text($string, $truncation = 250){ //search for words/whitespace for($w=false,$l=strlen($string),$c=0,$t=0; $t<$truncation && $c<$l;$c++){ $char = $string[$c]; //detect change of state from 'word' to 'whitespace': if (!$w && strstr(" \t\r\n", $char)){ $w = true; } elseif($w && !strstr(" \t\r\n", $char)){ $w = false; $t++; } } return substr($string, 0, $c); } This is NOT going to be fast on large pieces of text, because PHP loop is relatively slow -- So if somebody posts a working function using built-in PHP functions, it will probably be faster. -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php