Hola. Se me ocurrio una manera de tener en un texto que trabaja un script y que debe enviar al navegador codigo mixto html y php.
Es decir, el usuario quiere ingresar por ejemplo
Código HTML:
<h1><?PHP echo "hola"; ?></h1>
pero si mi script lo pasa luego por la funcion eval() no obtendre ningun resultado util. Entonces lo que el usuario hace ahora es utilizar unos tags especiales <PHP></PHP>. quedaria
Código HTML:
<h1><PHP>echo "hola";</PHP></h1>
y entonces el script agrega echo<<<HTML al principio HTML; al final y luego reemplaza los tags <PHP> y </PHP> por HTML; y echo<<<HTML respectivamente, quedando
Código:
echo<<<HTML
<h1>
HTML;
echo "hola";
echo<<<HTML;
</h1>
HTML;
entonces la funcion eval() me devolvera lo que necesito.
El problema es que si hay fuera de los tags <PHP> y </PHP> una variable, la funcion eval() lo pasara como variable y entonces desaparecera toda la palabra en el resultado final. Para evitarlo hay que tener la precaución de poner un signo \ delante de cada signo $,y es bastante tedioso (todo esto es en un cms)
Entonces necesitaria encontrar la manera de poner un signo \ delante de cada $ que este
fuera de los tags <PHP> y </PHP>. Tal vez alguien pueda ayudarme por favorr.
Este es el codigo actual:
Código PHP:
function phptag($in) {
$in = "echo <<<HTML\n".$in;
$in .= "\nHTML;\n\n";
$in = str_replace("<PHP>","\nHTML;\n",$in);
$in = str_replace("</PHP>","\necho <<<HTML\n",$in);
return $in;
}
Saludos cordiales
muchas gracias