Buenas, tengo un problema medio.. raro (al menos para mi)
Tengo este json
Código JSON:
Ver original[
{ "name": "include", "file": "tagInclude.php" },
{ "name": "\\$", "file": "tagVariable.php" },
{ "name": "foreach", "file": "tagForeach.php" }
]
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($json, true);
...
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