Función substr (php)

v3sTi4

Tengo una duda acerca de la función substr.

Intentaré explicarme lo mejor posible mediante un ejemplo para ver si me entiende porque no se me ocurre otra forma de plantear mi duda.

Supongamos que realizamos una consulta a la base de datos de mysql y mostramos los datos que contiene la tabla texto.

En esa tabla definida como "TEXT" sólo hay texto y cuando realizamos un echo al contenido de esa tabla se nos imprime todo su contenido.

Partiendo de esto, utilizamos la función subrst para que sólo aparezcan los primeros 500 caracteres de tabla.
substr($texto, 0, 500);

El PROBLEMA y la DUDA está cuando el carácter que hace 500 corta una palabra en dos.
Ejemplo:
Avión, la "i" sería el caracter número 500, y nos imprimiria todo el texto hasta Avi...

MI PREGUNTA ES:
¿Cómo puedo hacer para que me tomara la totalidad de la palabra?
Dicho de otro modo, ¿existe alguna función que determine que sólo corta en "500carácters" si no corta la palabra, es decir, que a partir de los 500 carácteres corte en el siguiente espacio que encuentre.

No se si me habrán entendido.

Espero una respuesta.
GRACIAS

S

Veo que has buscado mucho antes de poner el tochaco.

Si, lo hay, puedes mirar en www.php-hispano.net por ejemplo.

edit.
http://www.google.es/search?hl=es&q=php+cortar+texto+palabra&btnG=Buscar+con+Google&meta= ( soy el amote usando google, eh )

v3sTi4

No sabía que terminología emplear para buscar en google.
Yo lo único que he mirado antes ha sido en php.net

Por ese motivo, he empezado el mensaje diciendo que lo explicaba con un ejemplo porque no sabía que terminología emplear.

Gracias por tu respuesta ;-)

S

"php cortar texto palabra" tiene mucho que pensar, te entiendo ;)

Recuerdo cuando saque más de 60 puntos en el test de CI, me dio una alegria enorme.

Shock

Yo estoy haciendo algo parecido a lo tuyo y primero probé con expresiones regulares pero en vista que son super complejas ahora estoy probando a jugar con la función strpos a ver si saco algo en claro.

Efectivamente el ejemplo 1 de la función strpos en la web oficial de php hace lo que quieres, pero yo sigo estancado xD

Shock

Con preg_replace y str_replace se puede hacer lo que dices, y creo que con str_pos también pero hay que estudiárselo xD

v3sTi4

Con esto funciona:

function cortarTexto($str,$num)
{
$str = substr($str,0,$num);
return substr($str,0, -(strlen($str)-strrpos($str,' ')) );

}

Simplemente aplicar:
$texto = cortarTexto($texto, 200);
$texto .= '...';
echo $texto;


Paso de entrar en polémicas #4 pero sólo quiero decir que te ha faltado educación y respeto. No toda persona cae a bote pronto en que en google va a salir lo que buscamos con "cortar texto", yo busqué en relación a la función substr

ItNaS

#4 se pueden explicar las cosas sin ser un gilipollas

W

Pues gracias a que 1 a preguntado y los demas han respondido tambien me ha aclarado la duda a mi, creo que para eso esta DEV para que preguntemos lo que no sabemos y nos ayudemos entre todos no?

S

Por supuesto.

Voy a crear un tema para preguntar como hacer una web sin haberme visto nada previamente, ahora vengo.

Usuarios habituales