hi,
i was developing an application that will read in the content of a html
file. and within this html file contains php variables which will be
replaced using the eval() function with its required value. and within
this html, i want to be able to run php functions. however, due to the
fact that characters need to be escaped so that eval() can process it, i
have to make use of addslashes() to escape all " that are embedded in
the html file.
with the " escaped, eval() will be able to work and evaluate the php
variable and instead of:
eval("\$rs = \"<span class="normal">$phpVar</span>\";"); (won't work)
it will now be:
eval("\$rs = \"<span class=\"normal\">$phpVar</span>\";"); (work)
and to call a date() function on the above text, this format will work:
eval("\$rs = \"<span class=\"normal\">".date("m d y")."$phpVar</span>\";");
since the text that is passed into eval() came from a html/php/inc
(whatever you name it) file, there is no way you will know that a
particular text is in fact a php function.
so i thought of prefixing and suffixing php function with [::date("m d
y")::] and it will be helpful in the sense that the application will
know that oh, this is a php function, i need to ". ." it so that eval
will not throw me an error.
with that, now the html file's content will be something like:
<span class="normal">[::date("m d y",$phpVar)::]</span>
after using addslashes(), it will be:
<span class=\"normal\">[::date(\"m d y\",$phpVar)::]</span>
for the above text, in order for eval() to parse correctly, it has to be
in this format:
eval("\$rs = \"<span class=\"normal\">".date("m d y",$phpVar)."</span>\";")
and there is always a chance that the html text could contain more than
1 block of [:: phpfunction ::]
thats why i came up with that piece of code to convert the text to a
string that eval will be able to understand. and at the end of it, i
will be echoing $rs to display the final result.
you probably will wonder why dont i use include() and require()? that
way, php will be handling all the above without requiring additional
work. however, due to the way the result has to be handled, i couldn't
use include nor require.
lance
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php