参考:
http://www.w3school.com.cn/php/func_misc_eval.asp
注意事项:
1用法:eval(phpcode)
2.phpcode为字符串类型,每行代码需要带结束符";",否则会提示error $end 的错误
3.注意代码转义: 在使用 用"$"符号时,注意用\$代替$;\t需要写为\\t
代码示例1:在文本框中输入代码并执行;
</pre><pre name="code" class="php"><?php
$code=isset($_GET["code"])?($_GET["code"]):null;
echo "-------$code<br>\n";
?>
<form>
input_php_code <input type=text style='width:1000px;height:500px;' name="code" value="<?php echo $code; ?>">
<input type=submit value="submit">
</form>
<?php
$arr=Array(1,2,3,4,5,6);
if($code==null){
$code="echo 1000000000000;";
}
echo "code=$code, eval(code)=";
echo eval($code);
?>
代码示例2:仿照sql的select功能,对日志中的指定列进行筛选
<?php
$def=array("domain"=>0,"refer"=>1,"time"=>2);
function convert_sql4eval($sql,$line="line",$return="r"){
global $def;
$sql_arr=explode(",",$sql);
$r=Array();
$format=Array();
while(list($k,$v)=each($sql_arr)){
array_push($r,sprintf("\$".$line."[%s]",$def[$v]));
array_push($format,"%s");
}
$s=join(",",$r);
$fs=join("\t",$format);
return "\$$return=sprintf(\"$fs\n\",$s);";
}
$file=fopen("../data/temp","r");
while(!feof($file)){
$line=explode("\t",rtrim(fgets($file)));
$r="";
eval(convert_sql4eval("domain,refer,time","line","r"));
print $r;
}
?>