PHP: Limitar o cortar cadena y agregar puntos suspensivos o sufijo

Publicado por parzibyte en

En este post voy a explicar cómo podemos truncar una cadena si su longitud es mayor a un valor que nosotros designemos usando el lenguaje PHP.

Además de truncar la cadena con PHP vamos a ver cómo agregarle puntos suspensivos o tres puntos: ... (y cualquier otro sufijo, o dejarlo vacío)

Esto también se puede hacer con CSS pero aquí lo haremos con PHP.

Limitar cadena en PHP usando strlen y substr

Este enfoque aplica con PHP y con cualquier otro lenguaje que permita cortar una cadena y conocer la longitud de la misma. Se trata de comparar la longitud, y si es mayor que el límite entonces se corta.

Las 2 funciones que permiten eso son strlen y substr; si queremos tratar con cadenas multibyte usamos mb_strlen y mb_substr.

La función y la forma de uso queda así:

Para invocar a la función se le pasa la cadena que se va a cortar, el límite de caracteres y un sufijo. Podemos mandar el sufijo como cadena vacía para que no se le agregue nada al final.

Lo que acabamos de hacer funciona, aunque le faltan validaciones. Veamos otra función.

Str::limit() de Laravel

El framework Laravel tiene una función para limitar las cadenas y agregarles un posible sufijo. Su definición la podemos ver en el repositorio de GitHub. Para adaptarla haríamos esto:

Las ventajas que ofrece esta función es que elimina los espacios en blanco en caso de que queden al final de la cadena, además de que usa una función nativa de las cadenas multibyte.

Hablando de código, esta función necesita únicamente el primer argumento: la cadena. Si no enviamos el límite supondrá que es 100, y si no enviamos el sufijo supondrá que es “…”.

Conclusión

Así es como podemos cortar o limitar cadenas con PHP.

Puede que cambiemos el código de acuerdo a nuestras necesidades; y cuando sabemos cómo funcionan las cosas de manera interna entonces podemos hacerlo.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

0 Comments

Deja un comentario

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: