2010-09-02

Función que trunca texto con palabras completas

Esta función sólo trunca una cadena cuando encuentra el punto de ruptura que le indiquemos -un espacio, un punto, dos puntos,..- y resulta muy útil, por ejemplo, para mostrar un extracto de un artículo completo sin romper las palabras.
  1. <?php  
  2. // Original PHP code by Chirp Internet: www.chirp.com.au  
  3. // Please acknowledge use of this code by including this header.  
  4. function myTruncate($string, $limit, $break=".", $pad="...") {  
  5.     // return with no change if string is shorter than $limit  
  6.     if(strlen($string) <= $limit)  
  7.         return $string;   
  8.   
  9.     // is $break present between $limit and the end of the string?  
  10.     if(false !== ($breakpoint = strpos($string, $break, $limit))) {  
  11.         if($breakpoint < strlen($string) - 1) {  
  12.             $string = substr($string, 0, $breakpoint) . $pad;  
  13.         }  
  14.     }  
  15.     return $string;  
  16. }  
  17. ?>  
Ejemplo:
  1. $cadena="Ut at risus magna. Aenean in urna urna, bibendum ultricies libero. Quisque accumsan, dolor ut sagittis fermentum, ipsum sapien posuere arcu, eget fermentum lorem leo mattis risus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer rhoncus tincidunt pulvinar. Aliquam sed odio vitae erat vestibulum eleifend. In hac habitasse platea dictumst. Fusce fringilla aliquet leo a porta. Proin facilisis vehicula nisi, pharetra pellentesque turpis rutrum in. Quisque laoreet nisi augue. Fusce lorem metus, mollis sed aliquam eget, dapibus sit amet dui. Nulla facilisi. Vestibulum laoreet, orci in euismod tristique, est ligula sagittis dolor, a pellentesque odio ligula tempus risus. Aenean elit ligula, facilisis sed tincidunt ac, facilisis eget ipsum. ";  
  2. echo myTruncate($cadena, 200,' ', '...');  
Visto en 21 Really Useful & Handy PHP Code Snippets » »

No hay comentarios: