Foros del Web » Programando para Internet » PHP »

preg_replace consulta..

Estas en el tema de preg_replace consulta.. en el foro de PHP en Foros del Web. Hola, tengo un problemita y no logro entender como funciona este comando. tengo una consulta a un campo de una db que en ocasiones tienen ...
  #1 (permalink)  
Antiguo 18/07/2010, 12:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
preg_replace consulta..

Hola, tengo un problemita y no logro entender como funciona este comando.

tengo una consulta a un campo de una db que en ocasiones tienen caracteres irregulares.
ejemplo:

$texto = "<a class='postlink' href='http://img697.imageshack.us/i/screen07170228.jpg/'>http://img697.imageshack.us/i/screen07170228.jpg/</a> texto que solo necesitaria mostrar";

utilizo esto:

$texto = preg_replace('@(<a[^>]*)style=(["|\']).+?\\2@si', ' ', $texto);

tendria que arrojarme este resultado

"texto que solo necesitaria mostrar"

o sea nesecitaria suprimir todo lo que este comprendido entre los caracteres <a y /a> inclusive.
no me funciona eso y no logro entender todos esos caracteres que estarian en el parametro de busqueda.. se que el parametro de remplazo seria ,' ',

Desde ya agradesco ya ayuda que me brinden.
  #2 (permalink)  
Antiguo 18/07/2010, 15:58
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: preg_replace consulta..

y para que tan complicada la expresion ?

Cita:
'@(<a[^>]*)style=(["|\']).+?\\2@si'
si lo unico que deceas es borrar el <a />

Código PHP:
Ver original
  1. $texto = preg_replace('/<a.+?\/a>/', '', $texto);

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 18/07/2010, 16:10
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: preg_replace consulta..

gracias por responder...

en realidad no era borrar el parametro </a> sino todo lo contenido por el mismo..

de esto:

"<a class='postlink' href='http://img697.imageshack.us/i/screen07170228.jpg/'>http://img697.imageshack.us/i/screen07170228.jpg/</a> texto que solo necesitaria mostrar";


que me quede:

" texto que solo necesitaria mostrar"

es decir que me borre todo lo contenido entre <a y /a>

Es decir eliminar lo que venga en parametros diferentes al texto en si. en este caso toda la a class
  #4 (permalink)  
Antiguo 18/07/2010, 16:36
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: preg_replace consulta..

prueba con:


Código PHP:
Ver original
  1. echo preg_replace('/<a(.+?)\/a>/i','',$str);
  #5 (permalink)  
Antiguo 18/07/2010, 16:53
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: preg_replace consulta..

nisiquiera probaste el codigo
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 18/07/2010, 17:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: preg_replace consulta..

Cita:
Iniciado por Hidek1 Ver Mensaje
nisiquiera probaste el codigo


Tienes razon... me equivoque y por eso no me funciono.. lo prove de nuevo y andubo perfecto..


$texto = preg_replace('/<a.+?\/a>/', '', $texto);


la explicasion seria..

el parametro es lo que este comprendido entre lo que esta en azul.
que significaria '.+?\/ ' que esta dentro del parametro?

digamos si tambien hay un parametro que es
" [img:http://img15.imageshack.us/i/screen071702300004.jpg] texto que necesitaria"

lo unico que tendria que hacer seria reemplazar esos caracteres?

$texto = preg_replace('/[img.+?\/]/', '', $texto);

Disculpa mi ignorancia pero por mas que leo la guia
http://www.php.net/manual/es/function.preg-replace.php
no logro entenderlo..
  #7 (permalink)  
Antiguo 18/07/2010, 18:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: preg_replace consulta..

algo asi pero los caracteres [ y ] estan reservados.. debes escaparlos
intenta asi
Código PHP:
Ver original
  1. $texto = preg_replace('/\[img.+?\]/', '', $texto);
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:22.