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; }