PHP – Recortar un texto
Veamos un ejemplo de cómo recortar un texto demasiado largo en PHP para poderlo mostrar por pantalla de una manera más clara.
En muchas ocasiones, tenemos contenidos en formato texto almacenados en la base de datos. Cuano queremos mostrarlos en la web en listados, muchas veces nos interesa mostrar solo el inicio del texto y añadir un «…» o «Leer mas» para facilitar el seguir leyendo el resto del texto. Aquí tenéis el código:
// Recuperamos el texto de la base de datos. Aquí dependiendo dónde trabajéis, deberéis crearos vosotros la consulta... $producto_intro = $_product->getIntroProd(); // Miramos cuántos caracteres tiene el texto $count_str = strlen($producto_intro); // Si mide mas de 50 caracteres, recortamos if ($count_str >= 50) { // Medida a recortar $length = 51; // Convertimos los caracteres html $producto_intro = html_entity_decode($producto_intro); // Cortamos el texto y tratamos el código html $producto_intro = htmlentities(mb_substr($producto_intro,0,$length,'utf-8')). "..."; } $resultado= '<p>'. $prod_intro .'</p>';
Hay varias funciones que utilizamos y que son importantes. Además os dejamos el enlace en la parte inferior del artículo para que podáis ver las especificaciones oficiales de las funciones:
html_entity_decode(): Primero convertimos a etiquetas html todo lo que esté almacenado codificado. Ejemplo:
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$b = html_entity_decode($a);
echo $b; // I'll "walk" the <b>dog</b> now
?>
mb_substr(): cortamos el texto a la longitud deseada.
html_entities(): esta función nos convierte los caracteres html. Ejemplo:
<?php
$str = "A 'quote' is <b>bold</b>";
// Produce: A 'quote' is <b>bold</b>
echo htmlentities($str);
?>
Espero que os sea de utilidad este ejemplo de cómo recortar un texto en PHP. Hay muchas maneras de hacerlo, y ésta os puede dar una idea para hacerlo como os interese.
Vuelvo a decir que según lo que necesitéis o tengáis la información almacenada en la base ded atos, el código puede cambiar añadiendo o modificando según qué función. No lo toméis al pie de la letra.
Más información