Cortar texto dinámicamente sin cortar palabras

Aquí os dejo otro aporte. Esta es la típica función para cortar texto a un determinado número de caracteres pero con la peculiaridad de que esta función no corta palabras.

Para usarla, solo tenéis que pasarle en la variable $texto el texto a cortar y en la variable $numMaxCaract el numero máximo de caracteres que queréis mostrar. Cuando la función de cortar texto llegue a este número, lo que ara es buscar el último espacio (dentro del número máximo de caracteres indicado) y cortara el texto en ese espacio en concreto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function cortarTexto($texto, $numMaxCaract){
	if (strlen($texto) <  $numMaxCaract){
		$textoCortado = $texto;
	}else{
		$textoCortado = substr($texto, 0, $numMaxCaract);
		$ultimoEspacio = strripos($textoCortado, " ");
 
		if ($ultimoEspacio !== false){
			$textoCortadoTmp = substr($textoCortado, 0, $ultimoEspacio);
			if (substr($textoCortado, $ultimoEspacio)){
				$textoCortadoTmp .= '...';
			}
			$textoCortado = $textoCortadoTmp;
		}elseif (substr($texto, $numMaxCaract)){
			$textoCortado .= '...';
		}
	}
 
	return $textoCortado;
}

Decir que, si en el texto pasado a cortar, no hay espacios, la función cortara el texto en el número máximo de caracteres indicado.

Como podéis ver la función es fácil de comprender, depurar y personalizar. Espero que os sirva de ayuda. Cualquier duda, hacerla en los comentarios y os intentare responder lo más rápido que me sea posible.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *