在PHPWIND5.3中加入代码运行功能

    技术2022-05-11  50

     今天架设了一个PHPWIND的论坛,想着要弄个运行代码的功能出来,不过我只懂点ASP,又没接触过PHP,想着看看有没前人树,咱乘下凉就是了。查了下,发现只有老版本的插件可以实现这个功能。老版本的方法如下:http://www.phpwind.net/read-htm-tid-73240-fpage--toread--page-1.html照样子弄了一下,发现数据格式已经换了,想着弄弄看,随便弄了下,感觉还有搞头。不过里面有<br />,PHP的字符替换我也不懂,试了下preg_replace发现只能替换一个,搞笑了。上网猛查资料,发现大多人说要用函数,汗汗。然后发现还有str_replace,试了下,总算可以了。具体方法如下:在template/你的模板名/read.html在合适的地方加入:

    < script >   function  run_Code(code) {  var  pop = window.open( " about:blank " , "" ); pop.document.writeln(code); //pop.location.reload(); }  function  copy_Code(obj) { obj.focus(); obj.select(); document.execCommand( ' copy ' ); }  function  save_Code(code) { var  pop = window.open( '' , ' _blank ' , ' top=10000 ' ); pop.document.writeln(code); pop.document.execCommand( ' saveas ' , '' , ' code.html ' ); pop.close(); }  </ script >  

    我是直接放到顶部了,嘎嘎。然后到require/bbscode.php文件找到

    function  phpcode( $code ){

    $phpcode_htm [ $codeid ] = " <h6 class="quote"><a href="javascript:"  οnclick="CopyCode(document.getElementById('code$codeid'));">Copy code</a></h6><blockquote id="code$codeid"> " . preg_replace ( " /^(<br />)?(.*)/is " , " /2 " , $code ) . " </blockquote> " ;

    改成

    $phpcode_htm [ $codeid ] = "<form> <font color=red>Code:</font><BR><TEXTAREA name ='codeArea' rows='10' style='WIDTH:100%;'> " . str_replace ( " <br /> " , " " , $code ) . " </textarea><br> <input type=button class=btn value=运行代码 οnclick=run_Code(codeArea.value)>     <input type=button class=btn value=复制代码 οnclick=copy_Code(codeArea)>     <input type=button value=保存代码 class=btn οnclick=save_Code(codeArea.value) >    <input type=reset value=清除再来 class=btn name=codeAre> <font color=blue size=2>[可以先修改代码再运行]</font><form> " ;

    传上去覆盖下,效果如下图:

     

    不过发现我放了<script>alert("111");</script>居然弹出两个框,闷闷,试试其他JS函数,还算正常。

    再次更新,已经正常了


    最新回复(0)