本人原創可編譯執行php指令碼的php函數

來源:互聯網
上載者:User

該思路究竟可以幹什麼呢?
例如:
可以在開發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);
}?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.