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
 
backend-tech/php/favorite-php-snippets/itrunc.txt · Last modified: May 8, 2010 01:51 AM by dordal
© 2005-10 David Ordal / DO IT, LLC. All Rights Reserved.