Comunidad de diseño web y desarrollo en internet online

cortar por etiquetas

Citar            
MensajeEscrito el 17 Sep 2008 04:12 pm
Buenas buenas.
Durecto al grano:
en un campo de una base mysql estoy guardando, por ejemplo : "lo que sea <strong>algo mas</strong>, y lo ultimo."
Este texto obviamente puede variar y la cantidad y variedad de etiquetas html tambien
La cosa es que necesito mostrar ese campo, pero cortando el texto, digamos asi : substr(campo , 0, 50) . Lo cual me corta el texto del campo en 50 caracteres. Esto lo hago porque puede ser muy largo y solo quiero una muestra.
El problema: hay muchas veces que corto el texto justo antes de cerrar una etiqueta. Entonces cuando lo imprimo la re cago.. se me queda una etiqueta abierta y se me deforma todo.....
Algun programador creativo con una solucion?????
Muchas gracias!!!!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2008 06:47 pm
Analiza el siguiente código...

Código :

$texto_a_cortar = $row['texto'];

$patron = array('/<*>/is');
$reemplaza = array('');
$texto_cortado = preg_replace($patron,$reemplaza,$texto_a_cortar);
$texto_cortado = substr($texto_cortado,0,50);

echo $texto_cortado;


Espero sirva. Exitos!

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 17 Sep 2008 06:52 pm
groso!!!!
gracias por tu respuesta, lo estoy probando YA!!!!
y te cuento!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2008 06:59 pm
Le pifié a la expresión regular, ya te lo estoy solucionando...

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 17 Sep 2008 07:04 pm
Ahora sí...
[code
<?php
$texto_a_cortar = 'este es <strong>el texto</strong> que quisiese cortar como para...';

$patron = array('/<([\/a-z]+)>/is');
$reemplaza = array('');
$texto_cortado = preg_replace($patron,$reemplaza,$texto_a_cortar);
$texto_cortado = substr($texto_cortado,0,20);

echo $texto_cortado;
?>
[/code]

Saludos!

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 17 Sep 2008 07:11 pm
me parecio... no me habia funcionado!!!!
Ahora pruebo este!
Mcuhas gracias!!!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2008 07:20 pm
no entendi el array!!!
no me funciono igualmente.
Entendi la funcion, pero no el array

debe tener algo raro

Muchas gracias igual!!!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2008 07:30 pm
Posta? Qué locura, yo lo tengo así funcionando en mi appserv... damn.

El array sirve para hacer multiples reemplazos.

Código :

$patron = array('/</is','/>/is','/a/is');
$reemplaza = array('&lt;','&gt;','B');

echo preg_replace($patron,$reemplaza,'Texto que <tag>deseo</tag> reemplazar...');

// esto reemplazaría < por &lt;, > por &gt; y todas las letras "a" por la letra "B"


Es raro que no funcione. Fijate el código fuente a ver que es lo que te está realmente imprimiendo. Saludos!

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 17 Sep 2008 07:52 pm
groso!!!
ahora si!!!
esto fue lo que me lo soluciono!!!

$patron = array('/</is','/>/is','/a/is');
$reemplaza = array('&lt;','&gt;','B');

Mil gracias!!!
Es un placer encontrar gente asi!
Lindo blog!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.