打印

[php] 在线执行PHP代码包装版

在寒竹、Fanbin等等热心的朋友的帮助下,这款小巧的程序终于诞生了。
想做这款程序的初衷是方便测试一些代码,这样就不用

新建文件->输入代码->保存->打开浏览器->定位到php文件->查看浏览结果

这么一个繁琐的过程了,现在只要把地址保存到收藏夹,然后要测试的时候,拿出来,直接输入代码测试就行了。

代码输入也挺方便的,自动高亮、自动完成,当然不支持代码提示

欢迎提出改进意见。

[ 本帖最后由 lzyy 于 2008-2-29 16:52 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
本帖最近评分记录
  • kuhanzhu 威望 +2 谢谢分享。不错的程序,新颖、方便。 2008-2-29 16:58
echo 'hello \' world';
这个被stripslashes去掉了就出错
最好先判断下环境

对了,这个是在magic关闭的情况下

[ 本帖最后由 kran 于 2008-2-29 16:33 编辑 ]
燃起了我心中的一团火.
谢谢老蔡,更新了一下,看看还有什么问题
选择字符的时候有时候不能选择单个字符。望改进下
我都不敢勾选专长了。。

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
+点撤销的功能就更完美了。。
我都不敢勾选专长了。。

TOP

不能选择单个字符?ms我这里无论FF还是IE都没有问题啊

撤销嘛,ctrl+z吧

TOP

回复 #6 lzyy 的帖子

比如 你精确的选中 hello baby(引号内)这几个字符
我都不敢勾选专长了。。

TOP

呵呵,我在06年还是07年的时候为了方便在线直接执行php,也写过类似的代码,不过估计和你的比起来简陋了很多,代码如下:

其中调用GesSHi来设置高亮。
不过在线调试php最大的问题在于:你无法将该程序开放给普通访问者,因为你不知道访问者是否会有意或者无意地执行一些有一定危险性的语句,比如删除文件,列出某目录下所有文件。。。
复制内容到剪贴板
代码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
include_once("../api/GeSHi/GeSHi.php");
function syntax2($s){
    $g=new GeSHi($s,"php");
    $g->set_header_type(GESHI_HEADER_DIV);
    $g->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
    $g->set_overall_style('color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', true);
    $g->set_line_style('font: normal normal 95% \'Courier New\', Courier, monospace; color: #003030;', 'font-weight: bold; color: #006060;', true);
    $g->set_code_style('color: #000020;', 'color: #000020;');
    $g->set_link_styles(GESHI_LINK, 'color: #000060;');
    $g->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;');
    $g->set_header_content('GeSHi &#169; 2004, Nigel McNie. ');
    $g->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
    
    return $g->parse_code();
}
if (isset($_POST["r"])){
$rr=str_replace(array("\\\"","\\'","\\\\"),array("\"","'","\\"),$_POST["r"]);
echo syntax2($rr);
$f="xx_yy_".time().".php";
$r=fopen($f,"w");
fwrite($r,$rr);
fclose($r);
include($f);
unlink($f);
}
?>
<form method="post">
<textarea name="r" id="r" cols="80" rows="20"></textarea>
<input type="submit"><br />
<input type="checkbox" onclick="ins('time')"/>当前时间<br />
<input type="checkbox" onclick="ins('ct')"/>自定义时间<br />
<script>
var codes={};
codes["time"]="<"+"?=time()?"+">";
codes["ct"]="<"+"?=mktime(时,分,秒,月,日,年)?"+">";
function ins(c){
    document.all.r.value+=codes[c];
}
</script>
</form>
[ 本帖最后由 Sheneyan 于 2008-2-29 20:04 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
子叶:子乌的叶子
帅哥们,美女们,新的一年终于来了,祝贺你们...终于又老了一岁~

TOP

@numa001

我这里选中是没有问题的,看看还有没有人有类似症状。

@Sheneyan

这个主要自己用着方便就行了


放出加强版,可以将代码另存为文件
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!

TOP

不错,支持,不过另存为不用那么麻烦啦。直接header
复制内容到剪贴板
代码:
if ($_POST['content']) {
    header ("Content-type: octet/stream");
    if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
        header("Content-Disposition: filename=tmp.php"); // For IE
    } else {
        header("Content-Disposition: attachment; filename=tmp.php"); // For Other browsers
    }
    echo $_POST['content'];
    exit;
}

TOP

厄滴神啊,写那么多代码的建议多看看手册吧

TOP

恩,我也觉得这么做实在是有点麻烦,但一时又找不着合适的方法,谢谢深空了

TOP