I’ve used many different truncate functions in PHP and Smarty but the below script is definetly the best.
It can break on period, end of word / space or however you need.
The default action is to break on the first “.” after $limit characters and then pad with “…”.
myTruncate.php
12345678910111213141516171819202122
<?php// Original PHP code by Chirp Internet: www.chirp.com.au// Please acknowledge use of this code by including this header.// http://www.the-art-of-web.com/php/truncate/functionmyTruncate($string,$limit,$break=".",$pad="..."){// return with no change if string is shorter than $limitif(strlen($string)<=$limit)return$string;// is $break present between $limit and the end of the string?if(false!==($breakpoint=strpos($string,$break,$limit))){if($breakpoint<strlen($string)-1){$string=substr($string,0,$breakpoint).$pad;}}return$string;}?>