Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2016, 16:09
Avatar de Fernand0
Fernand0
 
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 1 mes
Puntos: 19
Problema de RegEx desde json

Buenas, tengo un problema medio.. raro (al menos para mi)

Tengo este json
Código JSON:
Ver original
  1. [
  2.     { "name": "include", "file": "tagInclude.php" },
  3.     { "name": "\\$", "file": "tagVariable.php" },
  4.     { "name": "foreach", "file": "tagForeach.php" }
  5. ]
Resulta que por medio de php.. consigo el contenido... e introduzco el campo "name" en una RegEx.

Código PHP:
        private $pattern = array(
            
'@<(\/?(?:',
            
')(?:[^<>]+)*\/?)>@ims'
        
);
        
        private 
$current null;
        
        ...
        
        
$json file_get_contents(file); 
        
$json utf8_encode($json);
        
$json json_decode($jsontrue);
        
        ...
        
        foreach(
$json as $tag) {
        
        ...

        
$this->current implode($tag$this->pattern);
        
        ...
        
        
        } 
El resultado de $this->current es:
Cita:
@<(\/?(?:include)(?:[^<>]+)*\/?)>@ims
@<(\/?(?:\$)(?:[^<>]+)*\/?)>@ims
@<(\/?(?:foreach)(?:[^<>]+)*\/?)>@ims
Cuando llego al preg_replace, no me funcion el 2do regex (\$). Ahora si lo hago manualmente, si cambio $tag del foreach, por $tag = "\\$";.. si funciona..
Ya probe con addslashes tambien.. no tengo idea de porque nada sirve :s

Ven algo mal en la logica del codigo? Porque los regex salen bien.

Saludos y gracias por su tiempo