Tema: problema
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/11/2006, 18:57
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Exclamación problema

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

Última edición por geq; 05/11/2006 a las 18:58 Razón: un error n_nUU