Home > Php > Cortar caracteres sin cortar las palabras

En esta ocasión se muestra la forma de como cortar un texto con php sin cortar las palabras se puede definir la cantidad de caracteres por default tiene 180 y si se pasa en automático pone tres puntos suspensivos.

 cortar($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; 
}