Best PHP Truncate Function

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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/

function myTruncate($string, $limit, $break=".", $pad="...")
{
  // return with no change if string is shorter than $limit
  if(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;
}

?>

http://www.the-art-of-web.com/php/truncate/ has a write up with all the different options, foramts and additonal functions.

If you need to do any kind of truncating of text/html in PHP