Estoy buscando una forma de truncar una cadena de texto después de un cierto número de palabras. Aunque hay un comando en PHP que se puede usar para truncar una cadena en X caracteres, generalmente está en medio de una palabra y no me gusta eso. ¿Cómo se puede resolver esto con un número de palabras?
Respuesta: Para hacer esto tienes que construir tu propia función. PHP en sí mismo no tiene una función que permita tal abreviatura basada en palabras. Básicamente, explotas el texto y usas el espacio como separador. Entonces el mío tiene una matriz que contiene las palabras individuales. Para luego limitar la cadena a 25 palabras, construye gradualmente el texto junto con un bucle y simplemente deja que se ejecute 25 veces. El script PHP terminado se ve así:
$meintext = "Este es mi gran texto que quiero acortar. Actualmente todavía es relativamente largo y contiene muchas palabras. Pero después de que el script PHP termine con él, será bastante corto. Aproximadamente de la misma longitud que man Solo da ¡pruébalo!"; $texto corto = ''; $contarpalabras = 25; $fragmentos = explotar(' ', $mitexto); for ($x = 0; $x < $cantidad de palabras; $x++) { $texto corto .= "{$fragmentos[$x]} "; } $texto corto .= "..."; // Añadir puntos echo $shorttext; // Acabado...
Capítulos de esta publicación:
¿Por qué palabras y no signos?
Dividir el texto después de un cierto número de palabras es mucho más elegante que truncarlo después de cualquier número de caracteres. Esto hace que el final del extracto sea mucho más legible y se vea mejor. Creo que las palabras que están cortadas en el medio siempre parecen errores en el texto.
Ejemplo de PHP: acorte la cadena después de X caracteres
Sin embargo, si por alguna razón desea truncar después de una cierta cantidad de caracteres en lugar de palabras, esto es mucho más fácil que el ejemplo anterior. Aquí solo necesitas tres líneas de código:
$meintext = "Este es mi gran texto que quiero acortar. Actualmente todavía es relativamente largo y contiene muchas palabras. Pero después de que el script PHP termine con él, será bastante corto. Aproximadamente de la misma longitud que man Solo da ¡pruébalo!"; $mitexto=strip_tags ($mitexto); // primero filtrar las etiquetas HTML que de otro modo se romperían si se acortaran if(strlen($mitexto)>100) echo substr($mitexto,0,100)."..."; // después de 100 caracteres se truncará; de lo contrario, echo $mitexto;
Contribuciones parecidas
Jens dirige el blog desde 2012. Actúa como Sir Apfelot para sus lectores y los ayuda con problemas de carácter técnico. En su tiempo libre monta monociclos eléctricos, toma fotos (preferiblemente con el iPhone, por supuesto), escala las montañas de Hesse o camina con la familia. Sus artículos tratan sobre productos de Apple, noticias del mundo de los drones o soluciones a bugs actuales.
La visualización del bloque de código es un poco idiosincrásica y desaparece en algún lugar del nirvana en el lado derecho del navegador.
¡Hola Siegberto! Gracias por la pista. Esto de alguna manera se rompió a lo largo de los años, ya que solía tener otro complemento para mostrar los códigos. ¡Lo he corregido ahora y espero que sea legible de nuevo!