Ver Mensaje Individual
  #17 (permalink)  
Antiguo 02/10/2013, 16:23
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Problema al sustituir subcadena/tag por otra cadena

Cita:
Iniciado por SkAr88 Ver Mensaje
Y como lo estas haciendo?
Así

Código PHP:
Ver original
  1. $_SESSION['randomresult']['questions'][$i]['question'] =
  2. preg_replace ( "/(".$tags['tag'].")/",
  3. "@".$_SESSION['randomresult']['friend']['screen_name'],
  4. $questionsrandom[$i]['question'] );

Se supone que el patrón es una palabra entera (he quitado los corchetes '[' ']' para que no tuviera más problemas de los que ya tengo) envuelta entre paréntesis.
En definitiva, el patrón que le estoy pasando es
Código PHP:
Ver original
  1. /(name)/
Efectivamente me hace el reemplazo, pero me sustituye todos los caracteres por el screen_name, por lo que si la pregunta de prueba es

Cita:
11name11
me termina sustituyendo todo, quedando la pregunta de prueba

Cita:
@pepe@pepen@pepea@pepem@pepee@pepe@pepe
Si te fijas detenidamente, ha sustituido los 1 por @pepe y además incluso ha intercalado @pepe entre las letras del patrón.

No lo entiendo, según todos los sitios donde he buscado información sobre expresiones regulares dicen que el contenido entre paréntesis es interpretado como una unidad indivisible. Un bloque donde los reemplazos se hacen según el contenido específico de los paréntesis, dando igual lo que haya delante o detrás de dicha coincidencia.

Voy a seguir haciendo pruebas a ver cómo lo soluciono jeje :D
__________________
Ayúdame a hacerlo por mi mismo.