Last Updated: 08 May 2010

   |   

Author: dordal

String Truncation - iTrunc()

A great string truncation function, originally from FeedCreator (GPL).

/**
 * Truncates a string to a certain length at the most sensible point.
 * First, if there's a '.' character near the end of the string, the string is truncated after this character.
 * If there is no '.', the string is truncated after the last ' ' character.
 * If the string is truncated, " ..." is appended.
 * If the string is already shorter than $length, it is returned unchanged.
 *
 * @static
 * @param string    string A string to be truncated.
 * @param int        length the maximum length the string should be truncated to
 * @return string    the truncated string
 */
function _iTrunc($string, $length) {
    if (strlen($string)<=$length) {
        return $string;
    }
 
    $pos = strrpos($string,".");
    if ($pos>=$length-4) {
        $string = substr($string,0,$length-4);
        $pos = strrpos($string,".");
    }
    if ($pos>=$length*0.4) {
        return substr($string,0,$pos+1)." ...";
    }
 
    $pos = strrpos($string," ");
    if ($pos>=$length-4) {
        $string = substr($string,0,$length-4);
        $pos = strrpos($string," ");
    }
    if ($pos>=$length*0.4) {
        return substr($string,0,$pos)." ...";
    }
 
    return substr($string,0,$length-4)." ...";
 
}

Discussion

Enter your comment. Wiki syntax is allowed: