21 10

Cortar una cadena de caracteres sin partir la última palabra

Publicado por Yoné Rocha en Diseño Web, PHP

En PHP tenemos multitud de funciones para tratar cadenas de caracteres. Una de ellas, substr, nos devuelve un fragmento o porción de la cadena que estamos manipulando. El problema viene cuando queremos que no se  corte la última palabra de la subcadena que obtenemos. Ninguna función de manipulación de cadenas es capaz de identificar una palabra y no cortarla, pero podemos utilizar una combinación de éstas funciones para obtener una subcadena sin cortar palabras por la mitad.

Con el código que describo a continuación podéis cortar una cadena, dado un número de caracteres, sin partir la última palabra de la subcadena resultante.

$texto = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
$cantidadCaracteres = 25;
 
//1.- Obtenemos un fragmento de la cadena desde el índice cero hasta la longitud dada por la variable$cantidadCaracteres
$subcadena = substr($texto,0,$cantidadCaracteres);
 
//2.- strrpos encuentra la posición de la ultima aparición de un caracter, en éste caso el último espacio en blanco de la cadena que obtenemos con substr
$indiceUltimoEspacio = strrpos($subcadena," ");
 
//3.- Con substr obtenemos una subcadena de $texto desde la posicion inicial hasta la posición del último espacio que nos interesa
echo substr($texto,0, $indiceUltimoEspacio);
//salida por pantalla-> Lorem ipsum dolor sit

Y ahora el mismo código  en una sola línea:

$texto = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
$cantidadCaracteres = 25;
echo substr($texto,0,strrpos(substr($texto,0,$cantidadCaracteres)," "));

Este aporte no es ni mucho menos mío, debemos darle las gracias a Javier Cerezo que dejo  un comentario en un artículo de la página programacionweb.net con este tip. 

Puntuación: 5.5/10 (12 votos emitidos)

  • Imprimir
  • Facebook
  • Twitter
  • Del.icio.us
  • Technorati
  • Digg
  • Menéame

Dirección trackback para este artículo:
http://promineostudios.com/blog/articulo/cortar-una-cadena-de-caracteres-sin-partir-la-ultima-palabra/trackback

Conozca los últimos comentarios de éste artículo agregando el feed RSS a su lector de noticias

Artículos Relacionados
Ir al formulario
2

Buenas

El código que pones en "una sóla línea" tiene un pequeño desliz.

La variable la defines como $cantidad y luego la usas como $cantidadCaracteres

Un saludo

Enlace Permanente | 13 de marzo del 2010 a las 11:08 - David ha dicho

Gracias! corregido el error.

Saludos ;-)

Enlace Permanente | 13 de marzo del 2010 a las 15:01 - yoné ha dicho

Escribe un comentario sobre este artículo

:) :D XD :( :-o 8O :-? 8) :-x :p :-| ;-) :oops: :cry: :evil: :roll: :!: :?: :idea: :arrow: :mrgreen:

  • bloglines
  • Google
  • Netvibes
  • MyYahoo
  • MyMsn
Artículos Destacados
Autores
Categorías
Archivo

2009 - PromineoStudios - Todos los derechos Reservados

Diseño con estándares web - XHTML CSS - Versión anterior del sitio