Foros del Web » Programando para Internet » PHP »

Ayuda con preg_replace()

Estas en el tema de Ayuda con preg_replace() en el foro de PHP en Foros del Web. Hola, que tal? Buscando una manera de quitar algunas etiquetas HTML de un string encontré esto: Código PHP: $texto  =  eregi_replace ( "<p[^>]*>.*</p>" , " " ...
  #1 (permalink)  
Antiguo 30/09/2010, 08:08
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Pregunta Ayuda con preg_replace()

Hola, que tal?

Buscando una manera de quitar algunas etiquetas HTML de un string encontré esto:

Código PHP:
$texto eregi_replace("<p[^>]*>.*</p>"," ",$texto);
$texto eregi_replace("<object[^>]*>.*</object>"," ",$texto);
$texto eregi_replace("<embed[^>]*>.*</embed>"," ",$texto); 
Pero me daba DEPRECATED. Y aquí en el foro encontré que la solución era reemplazar con preg_replace(), por lo que el código quedó así:

Código PHP:
$texto preg_replace("<p[^>]*>.*</p>"," ",$texto);
$texto preg_replace("<object[^>]*>.*</object>"," ",$texto);
$texto preg_replace("<embed[^>]*>.*</embed>"," ",$texto); 
Y me da el siguiente error:

Warning: preg_replace() [function.preg-replace]: Unknown modifier ']' in D:\5 - Pronet\m\prueba.php on line 21

Warning: preg_replace() [function.preg-replace]: Unknown modifier ']' in D:\5 - Pronet\m\prueba.php on line 22

Warning: preg_replace() [function.preg-replace]: Unknown modifier ']' in D:\5 - Pronet\m\prueba.php on line 23

Las líneas 21, 22 y 23 son las líneas de código PHP que copié anteriormente.

Estuve leyendo y realmente no entiendo el tema de las expresiones regulares.

Lo que necesito es borrar todas las etiquetas object y embed junto con todo lo que esté dentro de ellas, y borrar también las etiquetas P, pero conservando el contenido.

Cómo puedo hacer? Espero que alguien sepa guiarme.

Desde ya, muchas gracias! =)
__________________
Facundo
http://www.creactivo.com.ar
  #2 (permalink)  
Antiguo 30/09/2010, 08:10
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Ayuda con preg_replace()

Las expresiones regulares compatibles con Pearl deben tener delimitadores...
puedes leer sobre eso en el siguiente link
http://www.php-hispano.net/archivos/...egulares1.html

la respuesta en verdad es bastante simple.. te recomiendo leas eso para que a futuro no vuelvas a tener el mismo problema..
saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 30/09/2010, 08:43
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Ayuda con preg_replace()

Hidek1, gracias por tu respuesta. Estuve leyendo el documento, pero en vedad no logro entenderlo. En realidad no me dedico a la programación, pero es algo que me han pedido en el trabajo.

Estuve haciendo pruebas y no logré nada. :S

Tengo esta cadena:

Código PHP:
$texto '<p>
    Ahora que hemos tenido tiempo de digerir Chrome OS y obtener informaci&oacute;n sobre algunos de los detalles, es hora de pedir a los grandes interrogantes para entender si Chrome OS podr&iacute;a cambiar el mundo y c&oacute;mo. &iquest;Cu&aacute;l es el objetivo final de Chrome OS? &iquest;C&oacute;mo afectar&aacute; a Microsoft? Y finalmente, &iquest;qu&eacute; impacto tendr&aacute; Chrome OS en el mundo?<br />
    <br />
    Con la ecuaci&oacute;n de ingresos de Google en mente, es m&aacute;s f&aacute;cil comprender los motivos principales de Google para crear un sistema operativo basado enteramente fuera del navegador. Cuanto m&aacute;s tiempo que pasamos navegando en la web, m&aacute;s dinero hace Google. Es as&iacute; de simple. As&iacute;, el objetivo principal de Google es conseguir que nosotros estemos m&aacute;s en la web.<br />
    <br />
    </p>

<div class="media_embed">
    <object height="340" width="560"><param name="movie" value="http://www.youtube.com/v/0QRO3gKj3qw&amp;hl=en_US&amp;fs=1&amp;" /><embed allowscriptaccess="always" height="340" quality="high" src="http://www.youtube.com/v/0QRO3gKj3qw&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" width="485"></embed></object></div>'

Podrías decirme cual es la expresión que debería utilizar si quiero, por ejemplo, borrar todo el <div class="media_embed">?? Quizás así con un ejemplo más concreto pueda entender un poco más la lógica.

Muchas gracias.
__________________
Facundo
http://www.creactivo.com.ar
  #4 (permalink)  
Antiguo 30/09/2010, 08:48
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Ayuda con preg_replace()

Código regex:
Ver original
  1. $texto = preg_replace('%<embed[^>]*>.*?</embed>%is', '', $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 05:53.