Foros del Web » Programando para Internet » PHP »

Eliminar bbcode con PHP (expresión regular)

Estas en el tema de Eliminar bbcode con PHP (expresión regular) en el foro de PHP en Foros del Web. Buenas, sobre expresiones regulares no tengo ni la menor idea. Quisiera de una cadena, eliminar una etiqueta bbcode, concretamente: Código: [noquote]Ejemplo[/noquote] Por ejemplo si tengo: ...
  #1 (permalink)  
Antiguo 14/12/2010, 08:25
Avatar de yournightmare86  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 875
Antigüedad: 18 años
Puntos: 9
Eliminar bbcode con PHP (expresión regular)

Buenas,

sobre expresiones regulares no tengo ni la menor idea. Quisiera de una cadena, eliminar una etiqueta bbcode, concretamente:

Código:
[noquote]Ejemplo[/noquote]
Por ejemplo si tengo:

Código:
Hola, mi nombre es Javier, [noquote] esto fuera [/noquote]punto.
Quisiera que quedara:

Código:
Hola, mi nombre es Javier, punto.
He probado así, pero nop me funciona:

Código:
$message = preg_replace("#\[noquote\](.*?)\[/noquote\]#", "", $message);
Si alguien me ayuda se lo agradecería.

Un saludo.
  #2 (permalink)  
Antiguo 14/12/2010, 08:37
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eliminar bbcode con PHP (expresión regular)

mm que extraño.. a mi si me funciona

Código PHP:
<?php
$message 
'Hola, mi nombre es Javier, [noquote] esto fuera [/noquote]punto.';
$message preg_replace('#\[noquote\](.*?)\[/noquote\]#'''$message);
echo 
$message// imprime: Hola, mi nombre es Javier, punto.
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 14/12/2010, 09:49
Avatar de yournightmare86  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 875
Antigüedad: 18 años
Puntos: 9
Respuesta: Eliminar bbcode con PHP (expresión regular)

Puse mal el ejemplo, me inventé uno para no poner todo el real, que es este:

Código:
PruebaPruebaPruebaPruebaPruebaPruebaPrueba
[noquote][partida id=prueba][Event "Grand Slam Final Masters"]
[Site "Bilbao ESP"]
[Date "2010.10.14"]
[Round "5"]
[White "Carlsen, Magnus"]
[Black "Shirov, Alexei"]
[Result "1-0"]
[WhiteTitle "GM"]
[BlackTitle "GM"]
[WhiteElo "2826"]
[BlackElo "2749"]
[ECO "C78"]
[Opening "Ruy Lopez"]
[Variation "5.O-O"]
[WhiteFideId "1503014"]
[BlackFideId "2209390"]
[EventDate "2010.10.09"]
[EventType "DRR"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O b5 6. Bb3 Bc5 7. a4 Rb8 8. axb5
axb5 9. c3 d6 10. d4 Bb6 11. h3 O-O 12. Re1 h6 13. Na3 exd4 14. cxd4 Na5 15. Bc2
b4 16. Nb5 Ba6 17. Na7 Bb7 18. d5 Ra8 19. Nb5 Nc4 20. Rxa8 Qxa8 21. Nbd4 Qa7 22.
b3 Ne5 23. Bb2 Nxf3+ 24. gxf3 Qa2 25. Qc1 Bxd4 26. Bxd4 Nd7 27. Kh1 f6 28. Rg1
Rf7 29. Qd2 Qa8 30. Qxh6 Ne5 31. Bd1 Qe8 32. Qe3 c5 33. Bb2 Re7 34. f4 Nd7 35.
Qg3 Qf7 36. Bf3 Ba6 37. Bg4 Nf8 38. Bf5 c4 39. bxc4 Bxc4 40. Qh4 Bxd5 41. f3 Be6
42. Bxf6 Bxf5 43. exf5 Rc7 44. Rxg7+ Qxg7 45. Bxg7 Rxg7 46. f6 Rd7 47. Qe1 d5
48. Qxb4 d4 49. Qc4+ Kh7 50. Qd3+ Kg8 51. f5 Kf7 52. Kg2 Kxf6 53. Kg3 Kg7 54. h4
Nh7 55. Kf2 Nf6 56. Qd2 Nh7 57. Ke1 d3 58. Qg2+ Kh8 59. Kd2 Nf8 60. Qg5 Kh7 61.
h5 Kh8 62. f6 Kh7 63. f4 Kh8 64. h6 Kh7 65. f5 1-0[/partida][/noquote]

PruebaPruebaPruebaPrueba
Siendo en una línea si me lo hace.

Gracias por contestar, un saludo.
  #4 (permalink)  
Antiguo 14/12/2010, 09:53
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eliminar bbcode con PHP (expresión regular)

solo agrégale una s después del #

$message = preg_replace('#\[noquote\](.*?)\[/noquote\]#s', '', $message);


así haces que también tome los saltos de linea

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 14/12/2010, 10:06
Avatar de yournightmare86  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 875
Antigüedad: 18 años
Puntos: 9
Respuesta: Eliminar bbcode con PHP (expresión regular)

Perfecto, ¡¡eso era!!

Muchas gracias amigo, debo refrescar las expresiones regulares.

Un saludo.

Etiquetas: bbcode, eliminar, regular
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 20:13.