Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/11/2010, 03:04
Avatar de yournightmare86
yournightmare86
 
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 875
Antigüedad: 18 años
Puntos: 9
Error con str_replace

Buenas a todos,

estoy haciendo unas modificaciones en un foro SMF, para añadir unos bbcodes propios. Resulta que el editor del SMF, mete saltos de líneas, y espacios. Recojo todo en una variable $data, y comienza a hacer str_replace de lo que quiero reemplazar, pero resulta que cuando voy a reemplazar todos los   , solo me reemplaza algunos. No consigo comprender que ocurre, a ver si me echan una mano, porque no veo donde está el error.

Antes de hacer replace tengo esto:
Código:
[Event "Grand Slam Final Masters"]
[Site "Bilbao ESP"]
[Date "2010.10.14"]
[Round "5"]
[White "Carlsen, Magnus"]
[Black "Shirov, Alexei"]
[Result "1-0"]
[WhiteElo "2826"]
[BlackElo "2749"]
[ECO "C78"]
[EventDate "2010.10.09"]
[WhiteTitle "GM"]
[BlackTitle "GM"]
[Opening "Ruy Lopez"]
[Annotator "IM Gonzalez de la Torre"]  1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 
Nf6 5.O-O b5 6.Bb3 Bc5 {La variante  Moller, una de las especialidades 
de Shirov} 7.a4 {Esta variante  secundaria está siendo muy popular entre 
los jugadores de élite}      ( {La línea principal era} 7.c3 d6
 {Y ahora el blanco debe elegir      entre dos jugadas}
 8.a4          ( 8.d4 )    
Aplicando esto:
Código:
$data = str_replace(" ", "", $data);
Obtengo esto:

Código:
[Event "Grand Slam Final Masters"]
[Site "Bilbao ESP"]
[Date "2010.10.14"]
[Round "5"]
[White "Carlsen, Magnus"]
[Black "Shirov, Alexei"] 
[Result "1-0"]
[WhiteElo "2826"]
[BlackElo "2749"]
[ECO "C78"]
[EventDate "2010.10.09"]
[WhiteTitle "GM"]
[BlackTitle "GM"]
[Opening "Ruy Lopez"]
[Annotator "IM Gonzalez de la Torre"]  1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4
 Nf6 5.O-O b5 6.Bb3 Bc5 {La variante  Moller, una de las especialidades 
 de Shirov} 7.a4 {Esta variante  secundaria está siendo muy popular entre
 los jugadores de élite}    ( {La línea principal era} 7.c3 d6 {Y 
 ahora el blanco debe elegir    entre dos jugadas} 
 8.a4      ( 8.d4 )   )
Se han reemplazado algunos, pero no todos. ¿Alguna idea de cual puede ser el problema?

Muchas gracias, un saludo.