Skip to content

Instantly share code, notes, and snippets.

Created December 18, 2014 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/1b42441c9ff6a7ec7c06 to your computer and use it in GitHub Desktop.
Save anonymous/1b42441c9ff6a7ec7c06 to your computer and use it in GitHub Desktop.
Better Truncate Function
function truncate( $string, $length, $when = 'before', $append = NULL ) {
if( strlen( $string ) <= $length ) return $string;
$append = ( strlen( $append ) ? $append : '...' );
if( $when == 'center' ) $append = sprintf( ' %s ', trim( $append ) );
// ---------------
if( $when == 'before' ) {
return substr(
$string, 0,
strrpos( substr( $string, 0, $length ), ' ' )
) . $append;
}
if( $when == 'after' ) {
return substr(
$string, 0,
( strpos( substr( $string, $length ),' ' ) + $length )
) . $append;
}
if( $when == 'center' ) {
$start = round( $length / 2 );
$start = strlen(
substr( $string, 0,
( strpos( substr( $string, $start ), ' ' ) + $start )
)
);
$end = ( $start - strlen( $append ) );
$end = strlen(
substr( $string, 0,
strrpos( substr( $string, $start + strlen( $append ) ), ' ' )
)
);
return substr(
$string, 0, $start ) . $append .
substr( $string, ( strlen( $string ) - $end )
);
}
return FALSE;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment