Función muy recomendable cuando queramos recortar una determinada cadena de texto y añadir los típicos puntos suspensivos… En esta función evitaremos cortar palabras completas, podremos decirle que busque hasta determinada palabra o letra antes de cortar la cadena…

[cc lang=”php”]
function recortar_texto($texto, $longitud = 180) {
if((mb_strlen($texto) > $longitud)) {
$pos_espacios = mb_strpos($texto, ‘ ‘, $longitud) – 1;
if($pos_espacios > 0) {
$caracteres = count_chars(mb_substr($texto, 0, ($pos_espacios + 1)), 1);
if ($caracteres[ord(‘<')] > $caracteres[ord(‘>’)]) {
$pos_espacios = mb_strpos($texto, “>”, $pos_espacios) – 1;
}
$texto = mb_substr($texto, 0, ($pos_espacios + 1)).’…’;
}
if(preg_match_all(“|(<([\w]+)[^>]*>)|”, $texto, $buffer)) {
if(!empty($buffer[1])) {
preg_match_all(“||”, $texto, $buffer2);
if(count($buffer[2]) != count($buffer2[1])) {
$cierrotags = array_diff($buffer[2], $buffer2[1]);
$cierrotags = array_reverse($cierrotags);
foreach($cierrotags as $tag) {
$texto .= ‘‘;
}
}
}
}

}
return $texto;
}
// Modo de uso
$texto = ‘PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.’;
$txt = recortar_texto($texto, 100);
echo $txt;
[/cc]