Podrías hacer algo así (tené en cuenta que hay varias formas de hacerlo):
Código PHP:
<?php
$strOriginal = "X CONGRESO INTERNACIONAL DE TECNOLOGIA, INTELIGENCIA ARTIFICIAL Y REDES";
if (strlen($strOriginal)>30) {
$aux = substr($strOriginal,0,30); // 30 es la cantidad de caracteres a extraer
$posEspacio = strrpos($aux," "); // buscás la última posición del espacio
$strFinal = substr($aux,0,$posEspacio); // traés todo lo que hay "a la izquierda"
echo $strFinal."..."; // lo imprimís y agregás los puntos suspensivos
} else { // si el original tiene menos de 30 caracteres, lo imprimís como viene
echo $strOriginal;
}
?>
O, más simple:
Código PHP:
<?php
$strOriginal = "X CONGRESO INTERNACIONAL DE TECNOLOGIA, INTELIGENCIA ARTIFICIAL Y REDES";
if (strlen($strOriginal)>30) {
$aux = substr($strOriginal,0,30);// traés los primeros 30 caracteres
echo $aux."..."; // agregás los puntos e imprimís
} else {
echo $strOriginal;
}
?>
En el primero, buscás primero 30 caracteres (o cualquier otro valor que prefieras). Después buscás el último espacio en blanco dentro de ese substring y tomás todo lo que está a la izquierda (o sea desde la posición cero hasta ese espacio). La ventaja es que no te corta palabras por el medio.
En el segundo, simplemente traés los primeros 30 caracteres y le agregás los puntos suspensivos.
Suerte
Califa