本人原创可编译执行php脚本的php函数

该思路究竟可以干什么呢?
例如:
可以在开发CMS的时候自定义标签,将标签的内容PHP代码存放到数据库内,在生成页面的时候将存放到数据库内的php代码读出,然后用该思路执行并获取执行后的结果替换标签。
另外也可以将该思路延伸,用以作为网站在线程序编辑器来用,可以实现在线编辑可以编译执行的php;asp;jsp等任何文本文件。也可以作为在线数据库管理工具来用,只要填写对数据库操作的php代码即可操作管理数据库。最后,嘿嘿,如果在一个黑客的手中这段代码究竟能做出什么那就不是我该想的了。

//如果要轉載本文請注明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不注明出處的人 Seven{See7di#Gmail.com}
用法:
直接将如下代码保存为php文件,放入php运行环境中即可使用,在使用时在输入框内填写PHP代码,然后点击“提交”按钮,即可马上将您刚刚输入的PHP代码的执行结果反馈出来。

<form method="post" action="?action=submit">
<textarea rows=13 style="width:100%" name="code">
$fso=Fopen('1.php','w');
Fwrite($fso,"这是测试内容");
Fclose($fso);

For($i=14;$i<65;$i++){
echo Chr($i)."{$i}|";
}

$fengjian="冯健";
echo Chr(10).'<a href=\'http://www.7di.net\' target=\'_blank\'>官方网站地址是:www.7di.net,变量\$fengjian的值是'.$fengjian.'</a>';
echo Chr(10)."<a href=\"?action=\">返回</a>";
</textarea>
<input type="submit" value="提交">
</form>

<?php
/*
标签解析引擎
作用:将传入的PHP代码进行编译执行
返回:执行之后的结果
示例:Exe("echo \"a\";");*/
Function Exe($Str){
OB_start();
IF(Empty($Str) Or !IsSet($Str)){Return Null;}
//$Str=Str_Replace(Chr(92).Chr(92).Chr(34),Chr(14),$Str); //Chr(34)双引号
//$Str=Str_Replace(Chr(92).Chr(92).Chr(39),Chr(19),$Str); //Chr(39)单引号
$Str=Str_Replace(Chr(92).Chr(92),Chr(14),$Str); //Chr(34)双引号
$Str=Str_Replace(Chr(92),"",$Str);       //替换掉\
$Str=Str_Replace(Chr(14),Chr(92),$Str);
//$Str=Str_Replace(Chr(14),Chr(92).Chr(34),$Str);
//$Str=Str_Replace(Chr(19),Chr(92).Chr(39),$Str);
Eval($Str);             //解析执行
$Str=ob_get_contents();          //得到缓冲区内容
OB_end_clean();            //结束并清理缓冲
Return $Str;            //返回处理结果
}

IF($_GET["action"]=="submit"){
$b=$_POST["code"];
$f=Exe($b);
Print_r ($f).Chr(10);
}?>


posted @ 2009-08-11 20:51  已經停更  阅读(721)  评论(0编辑  收藏  举报