0

0

php单文件版在线代码编辑器_PHP

php中文网

php中文网

发布时间:2016-05-31 13:13:39

|

1806人浏览过

|

来源于php中文网

原创

密码加密方式:
 * md5(自设密码+$ace) //$ace为cdn镜像地址

使用方法:

 * 1.确认 $pwd 变量值为 false, 上传本文件到PHP空间并访问
 * 2.第一次访问提示设置密码,设置密码并牢记
 * 3.使用第一次设置的密码登录后,默认编辑的是本php文件,
 * 4.本文件是编辑器核心文件,请不要随意修改
 * 5.保存编辑的文件请用 Ctrl + S 按键组合,等待执行结果
 * 6.保存动作执行后请务必等待保存成功信息返回
 * 7.重置操作会修改本程序的文件名,以防他人猜测路径
 * 8.刷新功能仅是刷新本程序文件,不能刷新其他

建议在 chrome 浏览器中使用本编辑器

LANUX蓝脑商务网站系统
LANUX蓝脑商务网站系统

LANUX V1.0 蓝脑商务网站系统 适用于网店、公司宣传自己的品牌和产品。 系统在代码、页面方面设计简约,浏览和后台管理操作效率高。 此版本带可见即可得的html编辑器, 方便直观添加和编辑要发布的内容。 安装: 1.解压后,更换logo、分类名称、幻灯片的图片及名称和链接、联系我们等等页面。 2.将dbconfig.php里面的数据库配置更改为你的mysql数据库配置 3.将整个文件夹上传至

下载

代码如下:


session_start();
$curr_file = __FILE__; //默认编辑当前文件
$curr_file_path = str_replace(dirname(__FILE__), '', __FILE__);
$pwd = "57574d98bc6ebe77b07e59d87065cd9e"; //密码初始化默认值为 false
$ace = 'ace.js'; //编辑器核心js
$tip['core'] = 'alertify.core.min.css';
$tip['css'] = 'alertify.default.min.css';
$tip['js'] = 'alertify.min.js';
$jquery = 'jquery.min.js';
if ( false !== $pwd ) {
    define('DEFAULT_PWD', $pwd);
}
//文件后缀名对应的语法解析器
$lng = array(
    'as' => 'actionscript', 'js' => 'javascript',
    'php' => 'php', 'css' => 'css', 'html' => 'html',
    'htm' => 'html', 'ini' => 'ini', 'json' => 'json',
    'jsp' => 'jsp', 'txt' => 'text', 'sql' => 'mysql',
    'xml' => 'xml', 'yaml' => 'yaml', 'py' => 'python',
    'md' => 'markdown', 'htaccess' => 'apache_conf',
    'bat' => 'batchfile', 'go' => 'golang',
);
//判断用户是否登录
function is_logged() {
    $flag = false;
    if ( isset($_SESSION['pwd']) && defined('DEFAULT_PWD') ) {
        if ( $_SESSION['pwd'] === DEFAULT_PWD ) {
            $flag = true;
        }
    }
    return $flag;
}
//重新载入到本页面
function reload() {
    $file = pathinfo(__FILE__, PATHINFO_BASENAME);
    die(header("Location: {$file}"));
}
//判断请求是否是ajax请求
function is_ajax() {
    $flag = false;
    if ( isset($_SERVER['HTTP_X_REQUESTED_WITH']) ) {
        $flag = strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';
    }
    return $flag;
}
//销毁SESSION和COOKIE
function exterminate() {
    $_SESSION = array();
    foreach ( $_COOKIE as $key ) {
        setcookie($key, null);
    }
    session_destroy();
    $_COOKIE = array();
    return true;
}
//获取一个目录下的文件列表
function list_dir($path, $type = 'array') {
    $flag = false;
    $lst = array('dir'=>array(), 'file'=>array());
    $base = !is_dir($path) ? dirname($path) : $path;
    $tmp = scandir($base);
    foreach ( $tmp as $k=>$v ) {
        //过滤掉上级目录,本级目录和程序自身文件名
        if ( !in_array($v, array('.', '..')) ) {
            $file = $full_path = rtrim($base, '/').DIRECTORY_SEPARATOR.$v;
            if ( $full_path == __FILE__ ) {
                continue; //屏蔽自身文件不在列表出现
            }
            $file = str_replace(dirname(__FILE__), '', $file);
            $file = str_replace("\\", '/', $file); //过滤win下的路径
            $file = str_replace('//', '/', $file); //过滤双斜杠
            if ( is_dir($full_path) ) {
                if ( 'html' === $type ) {
                    $v = '

  • '.$v.'
  • ';
                    }
                    array_push($lst['dir'], $v);
                } else {
                    if ( 'html' === $type ) {
                        $v = '
  • '.$v.'
  • ';
                    }
                    array_push($lst['file'], $v);
                }
            }
        }
        $lst = array_merge($lst['dir'], $lst['file']);
        $lst = array_filter($lst);
        $flag = $lst;
        if ( 'html' === $type ) {
            $flag = '
      '. implode('', $lst) .'
    ';
        }
        return $flag;
    }
    //递归删除一个非空目录
    function deldir($dir) {
        $dh = opendir($dir);
        while ( $file = readdir($dh) ) {
            if ( $file != '.' && $file != '..' ) {
                $fullpath = $dir.'/'.$file;
                if ( !is_dir($fullpath) ) {
                    unlink($fullpath);
                } else {
                    deldir($fullpath);
                }
            }
        }
        return rmdir($dir);
    }
    //退出登录
    if ( isset($_GET['logout']) ) {
        if ( exterminate() ) {
            reload();
        }
    }
    //ajax输出文件内容
    if ( is_logged() && is_ajax() && isset($_POST['file']) ) {
        $file = dirname(__FILE__).$_POST['file'];
        $ext = pathinfo($file, PATHINFO_EXTENSION);
        $mode = isset($lng[$ext]) ? $lng[$ext] : false;
        die(json_encode(array(
            'file' => $file, 'html' => file_get_contents($file),
            'mode' => $mode,    
        )));
    }
    //ajax输出目录列表
    if ( is_logged() && is_ajax() && isset($_POST['dir']) ) {
        $dir = dirname(__FILE__).$_POST['dir'];
        $list_dir = list_dir($dir, 'html');
        die(json_encode(array(
            'dir' => $dir, 'html' => $list_dir,
        )));
    }
    //ajax保存文件
    if ( is_logged() && is_ajax() && isset($_POST['action']) ) {
        $arr = array('result'=>'error', 'msg'=>'文件保存失败!');
        $content = $_POST['content'];
        if ( 'save_file' === $_POST['action'] ) {
            if ( isset($_POST['file_path']) ) {
                $file = dirname(__FILE__).$_POST['file_path'];
            } else {
                $file = __FILE__;
            }
            file_put_contents($file, $content);
            $arr['result'] = 'success';
            $arr['msg'] = '保存成功!';
        }
        die(json_encode($arr));
    }
    //ajax删除文件或文件夹
    if ( is_logged() && is_ajax() && isset($_POST['del']) ) {
        $path = dirname(__FILE__).$_POST['del'];
        $arr = array('result'=>'error', 'msg'=>'删除操作失败!');
        if ( $_POST['del'] && $path ) {
            $flag = is_dir($path) ? deldir($path) : unlink($path);
            if ( $flag ) {
               $arr['msg'] = '删除操作成功!';
               $arr['result'] = 'success';
            }
        }
        die(json_encode($arr));
    }
    //ajax新建文件或文件夹
    if ( is_logged() && is_ajax() && isset($_POST['create']) ) {
        $flag = false;
        $arr = array('result'=>'error', 'msg'=>'操作失败!');
        if ( isset($_POST['target']) ) {
            $target = dirname(__FILE__).$_POST['target'];
            $target = is_dir($target) ? $target : dirname($target);
        }
        if ( $_POST['create'] && $target ) {
            $base_name = pathinfo($_POST['create'], PATHINFO_BASENAME);
            $exp = explode('.', $base_name);
            $full_path = $target.'/'.$base_name;
            $new_path = str_replace(dirname(__FILE__), '', $full_path);
            if ( count($exp) > 1 && isset($lng[array_pop($exp)]) ) {
                file_put_contents($full_path, '');
                $arr['result'] = 'success';
                $arr['msg'] = '新建文件成功!';
                $arr['type'] = 'file';
            } else {
                mkdir($full_path, 0777, true);
                $arr['result'] = 'success';
                $arr['msg'] = '新建目录成功!';
                $arr['type'] = 'dir';
            }
            if ( $base_name && $new_path ) {
                $arr['new_name'] = $base_name;
                $arr['new_path'] = $new_path;
            }
        }
        die(json_encode($arr));
    }
    //ajax重命名文件或文件夹
    if ( is_logged() && is_ajax() && isset($_POST['rename']) ) {
        $arr = array('result'=>'error', 'msg'=>'重命名操作失败!');
        if ( isset($_POST['target']) ) {
            $target = dirname(__FILE__).$_POST['target'];
        }
        if ( $_POST['rename'] ) {
            $base_name = pathinfo($_POST['rename'], PATHINFO_BASENAME);
            if ( $base_name ) {
                $rename = dirname($target).'/'.$base_name;
                $new_path = str_replace(dirname(__FILE__), '', $rename);
            }
        }
        if ( $rename && $target && rename($target, $rename) ) {
           $arr['new_name'] = $base_name;
           $arr['new_path'] = $new_path;
           $arr['msg'] = '重命名操作成功!';
           $arr['result'] = 'success';
        }
        if ( $target == __FILE__ ) {
            $arr['redirect'] = $new_path;
        }
        die(json_encode($arr));
    }
    //获取代码文件内容
    $code = file_get_contents($curr_file);
    $tree = '

         
    • ROOT'.list_dir($curr_file, 'html').'

    ';
    //登陆和设置密码共用模版
    $first =

    【标题】






       

           
       

       
       
       
       

    HTMLSTR;
    //判断是否第一次登录
    if ( false === $pwd && empty($_POST) ) {
        die(str_replace(
            array('【标题】', '【动作】'),
            array('第一次使用,请先设置密码!', '设置'),
            $first
        ));
    }
    //第一次设置登录密码
    if ( false === $pwd && !empty($_POST) ) {
        if ( isset($_POST['pwd']) && strlen($_POST['pwd']) ) {
            $pwd = $_SESSION['pwd'] = md5($_POST['pwd'].$ace);
            $code = preg_replace('#\$pwd = false;#', '$pwd = "'.$pwd.'";', $code, 1);
            file_put_contents($curr_file, $code);
        } else {
            reload();
        }
    }
    //用户登录验证
    if ( false !== $pwd && !empty($_POST) ) {
        $tmp = md5($_POST['pwd'].$ace);
        if ( $tmp && $pwd && $tmp === $pwd ) {
            $_SESSION['pwd'] = $pwd;
            reload();
        }
    }
    //处理一下html实体
    $code = htmlspecialchars($code);
    $dir_icon = str_replace(array("\r\n", "\r", "\n"), '',
    'data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAAAGXRFWHRTb2Z0d2
    FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQVJREFUeNqkkk1uwjAQhd84bsNP1FUXLCtu0H3XPSoX4Qrd9wR
    sCjQEcIY3DiiJUYiqRhp5Mra/92YSUVVgLSW49B7H+NApRh75XkHfFoCG+02tyflUeQTw2y9UYYP8cCStc9SM
    PeVA/Sy6Dw555q3au1z+EhBYk1cgO7OSNdaFNT0x5sCkYDha0WPiHZgVqPzLO+8seai6E2jed42bCL06tNyEH
    AX9kv3jh3HqH7BctFWLMOmAbcg05mHK5+sQpd1HYijN47zcDUCShGEHtzxtwQS9WTcAQmJROrJDLXQB9s1Tu6
    MtRED4bwsHLnUzxEeKac3+GeP6eo8yevhjC3F1qC4CDAAl3HwuyNAIdwAAAABJRU5ErkJggg==');
    $file_icon = str_replace(array("\r\n", "\r", "\n"), '',
    'data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAGXRFWHRTb2Z0d2
    FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAS1JREFUeNqMU01KxkAMTaez7aYbNwreQdBzeopS6EXEW+jug7Z
    C6X+/iUloSr6xioFHJkPee5mUJgBwT7gjpPB3XAgfiBjs5dOyLF/btl0pkEFngdbzPGNRFK/U+0hwJAAMjmcm
    DsOA4zge6Pseu67DpmlEqK5rLMvyRkDJor6uq2SGktu2FfdpmpANqqoSASYnO/kthABJkoCOxCASkCBkWSYuQ
    qCeNE1fqHz3fMkXzjnJ2sRinL33QBNIzWJ5nh/L8npQohVTJwYTyfFm/d6Oo2HGE8ffwseuZ1PEjhrOutmsRF
    0iC8QmPibEtT4hftrhHI95JqJT/HC2JOt0to+zN6MVsZ/oZKqwmyCTA33DkbN1sws0i+Pega6v0kd42H9JB/8
    LJl5I6PNbgAEAa9MP7QWoNLoAAAAASUVORK5CYII=');
    $loading = str_replace(array("\r\n", "\r", "\n"), '',
    'data:image/gif;base64,R0lGODlhFAAUALMIAPh2AP+TMsZiALlcAKNOAOp4ANVqAP+PFv///wAAAAAAAA
    AAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAIACwAAAAAFAAUAAAEUxDJSau9iBDMteb
    TMEjehgTBJYqkiaLWOlZvGs8WDO6UIPCHw8TnAwWDEuKPcxQml0Ynj2cwYACAS7VqwWItWyuiUJB4s2AxmWxG
    g9bl6YQtl0cAACH5BAUKAAgALAEAAQASABIAAAROEMkpx6A4W5upENUmEQT2feFIltMJYivbvhnZ3Z1h4FMQI
    Dodz+cL7nDEn5CH8DGZhcLtcMBEoxkqlXKVIgAAibbK9YLBYvLtHH5K0J0IACH5BAUKAAgALAEAAQASABIAAA
    ROEMkphaA4W5upMdUmDQP2feFIltMJYivbvhnZ3V1R4BNBIDodz+cL7nDEn5CH8DGZAMAtEMBEoxkqlXKVIg4
    HibbK9YLBYvLtHH5K0J0IACH5BAUKAAgALAEAAQASABIAAAROEMkpjaE4W5tpKdUmCQL2feFIltMJYivbvhnZ
    3R0A4NMwIDodz+cL7nDEn5CH8DGZh8ONQMBEoxkqlXKVIgIBibbK9YLBYvLtHH5K0J0IACH5BAUKAAgALAEAA
    QASABIAAAROEMkpS6E4W5spANUmGQb2feFIltMJYivbvhnZ3d1x4JMgIDodz+cL7nDEn5CH8DGZgcBtMMBEox
    kqlXKVIggEibbK9YLBYvLtHH5K0J0IACH5BAUKAAgALAEAAQASABIAAAROEMkpAaA4W5vpOdUmFQX2feFIltM
    JYivbvhnZ3V0Q4JNhIDodz+cL7nDEn5CH8DGZBMJNIMBEoxkqlXKVIgYDibbK9YLBYvLtHH5K0J0IACH5BAUK
    AAgALAEAAQASABIAAAROEMkpz6E4W5tpCNUmAQD2feFIltMJYivbvhnZ3R1B4FNRIDodz+cL7nDEn5CH8DGZg
    8HNYMBEoxkqlXKVIgQCibbK9YLBYvLtHH5K0J0IACH5BAkKAAgALAEAAQASABIAAAROEMkpQ6A4W5spIdUmHQ
    f2feFIltMJYivbvhnZ3d0w4BMAIDodz+cL7nDEn5CH8DGZAsGtUMBEoxkqlXKVIgwGibbK9YLBYvLtHH5K0J0
    IADs=');
    //编辑器模版
    $html =

    ACE代码编辑器






        保存
        刷新
        重置
        退出

    {$tree}
    {$code}






    HTMLSTR;
    //判断是否已经登录
    if ( !is_logged() ) {
        die(str_replace(
            array('【标题】', '【动作】'),
            array('请输入您第一次设置的密码!', '登录'),
            $first
        ));
    } else {
        echo $html;
    }

    以上就是本文所述的全部内容了,希望大家能够喜欢。

    相关文章

    PHP速学教程(入门到精通)
    PHP速学教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    php

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    全国统一发票查询平台入口合集
    全国统一发票查询平台入口合集

    本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

    19

    2026.02.03

    短剧入口地址汇总
    短剧入口地址汇总

    本专题整合了短剧app推荐平台,阅读专题下面的文章了解更多详细入口。

    27

    2026.02.03

    植物大战僵尸版本入口地址汇总
    植物大战僵尸版本入口地址汇总

    本专题整合了植物大战僵尸版本入口地址汇总,前往文章中寻找想要的答案。

    15

    2026.02.03

    c语言中/相关合集
    c语言中/相关合集

    本专题整合了c语言中/的用法、含义解释。阅读专题下面的文章了解更多详细内容。

    3

    2026.02.03

    漫蛙漫画网页版入口与正版在线阅读 漫蛙MANWA官网访问专题
    漫蛙漫画网页版入口与正版在线阅读 漫蛙MANWA官网访问专题

    本专题围绕漫蛙漫画(Manwa / Manwa2)官网网页版入口进行整理,涵盖漫蛙漫画官方主页访问方式、网页版在线阅读入口、台版正版漫画浏览说明及基础使用指引,帮助用户快速进入漫蛙漫画官网,稳定在线阅读正版漫画内容,避免误入非官方页面。

    13

    2026.02.03

    Yandex官网入口与俄罗斯搜索引擎访问指南 Yandex中文登录与网页版入口
    Yandex官网入口与俄罗斯搜索引擎访问指南 Yandex中文登录与网页版入口

    本专题汇总了俄罗斯知名搜索引擎 Yandex 的官网入口、免登录访问地址、中文登录方法与网页版使用指南,帮助用户稳定访问 Yandex 官网,并提供一站式入口汇总。无论是登录入口还是在线搜索,用户都能快速获取最新稳定的访问链接与使用指南。

    114

    2026.02.03

    Java 设计模式与重构实践
    Java 设计模式与重构实践

    本专题专注讲解 Java 中常用的设计模式,包括单例模式、工厂模式、观察者模式、策略模式等,并结合代码重构实践,帮助学习者掌握 如何运用设计模式优化代码结构,提高代码的可读性、可维护性和扩展性。通过具体示例,展示设计模式如何解决实际开发中的复杂问题。

    3

    2026.02.03

    C# 并发与异步编程
    C# 并发与异步编程

    本专题系统讲解 C# 异步编程与并发控制,重点介绍 async 和 await 关键字、Task 类、线程池管理、并发数据结构、死锁与线程安全问题。通过多个实战项目,帮助学习者掌握 如何在 C# 中编写高效的异步代码,提升应用的并发性能与响应速度。

    2

    2026.02.03

    Python 强化学习与深度Q网络(DQN)
    Python 强化学习与深度Q网络(DQN)

    本专题深入讲解 Python 在强化学习(Reinforcement Learning)中的应用,重点介绍 深度Q网络(DQN) 及其实现方法,涵盖 Q-learning 算法、深度学习与神经网络的结合、环境模拟与奖励机制设计、探索与利用的平衡等。通过构建一个简单的游戏AI,帮助学习者掌握 如何使用 Python 训练智能体在动态环境中作出决策。

    3

    2026.02.03

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    PHP课程
    PHP课程

    共137课时 | 10.9万人学习

    JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学

    共6课时 | 11.2万人学习

    PHP新手语法线上课程教学
    PHP新手语法线上课程教学

    共13课时 | 0.9万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号