·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

对接宝塔的仪表盘PHP教程(PHP+JS)

89 5
发表于 4 小时前 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
渲染效果如下,实际就是小编的哈
对接宝塔的仪表盘PHP教程(PHP+JS) 宝塔使用手册,宝塔图标


务必下载百度的图表JS,也就是echarts.min.js。貌似这个货有点肥已经亚健康了。看看有没有CDN的自行找找。后端PHP输出接口开始讲解。

1,为了保持良好的习惯,我们分3个文件去实现,第一个文件就是宝塔每个API接口,第二个就是封装一个宝塔的PHP类文件,第三个就是JSON输出接口,方便图表的JS对接渲染

配置文件命名为config.php,代码如下:
  1. <?php$config = array('GetSystemTotal' => '/system?action=GetSystemTotal',           //获取系统基础统计'GetDiskInfo' => '/system?action=GetDiskInfo',                             //获取磁盘分区信息'GetNetWork' => '/system?action=GetNetWork',                               //获取实时状态信息(CPU、内存、网络、负载));
复制代码
我这里随意举例了几个哈,其他的自行打开你的宝塔面板F12去获取了。

第二个封装一个PHP类,命名为Bt.php
  1. <?phpclass Bt{    private $BT_KEY = "";     private $BT_PANEL = "";    public function __construct($bt_panel = null,$bt_key = null){    if($bt_panel) $this->BT_PANEL = $bt_panel;    if($bt_key) $this->BT_KEY = $bt_key;    }          public function GetSystemTotal(){          $url = $this->BT_PANEL.$this->config("GetSystemTotal");    $p_data = $this->GetKeyData();          $result = $this->HttpPostCookie($url,$p_data);          $data = json_decode($result,true);          return $data;          }          public function GetDiskInfo(){          $url = $this->BT_PANEL.$this->config("GetDiskInfo");          $p_data = $this->GetKeyData();    $result = $this->HttpPostCookie($url,$p_data);    $data = json_decode($result,true);          return $data;          }          public function GetNetWork(){          $url = $this->BT_PANEL.$this->config("GetNetWork");          $p_data = $this->GetKeyData();    $result = $this->HttpPostCookie($url,$p_data);          $data = json_decode($result,true);          return $data;          }        public function GetKeyData(){        $now_time = time();        $p_data = array(        'request_token'        =>        md5($now_time.''.md5($this->BT_KEY)),        'request_time'        =>        $now_time        );        return $p_data;            }        public function GetKeyData(){        $now_time = time();        $p_data = array(        'request_token'        =>        md5($now_time.''.md5($this->BT_KEY)),        'request_time'        =>        $now_time        );        return $p_data;            }        private function HttpPostCookie($url, $data,$timeout = 60){        $cookie_file='./Cookie/'.md5($this->BT_PANEL).'.cookie';//定义cookie保存位置 自行创建文件夹        if(!file_exists($cookie_file)){        $fp = fopen($cookie_file,'w+');        fclose($fp);        }                $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_HEADER, 0);        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        $output = curl_exec($ch);        curl_close($ch);        return $output;        }        private function config($str){        require_once('config.php');        return $config[$str];        }}
复制代码
3,最后命名一个文件index.php就可以,这就是JSON输出的了哈。
  1. <?phprequire_once('Bt.php');//引入宝塔类函数$apiurl='http://110.110.110.110:56789/';// 修改成自己的宝塔面板地址$apikey='kGZcwuWXXunQXkluTBp5ArcZ5GwOSEqQ';// 修改成自己的宝塔Api密钥$bt = new Bt($apiurl,$apikey);$enews=$_POST['enews'];if(empty($enews)){$enews=$_GET['enews'];}if($enews=='getsystemtotal'){echo json_encode($bt->GetSystemTotal());//获取系统基础统计}if($enews=='getnetwork'){echo json_encode($bt->GetNetWork());//获取实时状态信息(CPU、内存、网络、负载)}if($enews=='getdiskinfo'){echo json_encode($bt->GetDiskInfo());//获取磁盘信息}
复制代码
此JSON接口不仅仅是完美集成到网站的,也可以集成到小程序,app上面的哈。不要单纯认为网站才可以的哈。接下来就是前端AJAX发起请求,获取JSON结果后用百度图表组件进行渲染就可以了!实在连前端都看不懂的下期再讲解
我要说一句 收起回复

评论5

婷姐Lv.8 发表于 4 小时前 | 查看全部
务必生产环境那接口输出文件加权限。反之不加权限被恶意调用盗刷就跟小编没有关系了
我要说一句 收起回复
CrystαlLv.8 发表于 4 小时前 | 查看全部
技术文章我必须支持一下
我要说一句 收起回复
婷姐Lv.8 发表于 4 小时前 | 查看全部
满满的干货、支持一波
我要说一句 收起回复
IT618发布Lv.8 发表于 4 小时前 | 查看全部
满满的干货、支持一波
我要说一句 收起回复
独家记忆Lv.8 发表于 4 小时前 | 查看全部
国之栋梁
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.102,GMT+8, 2025-6-26 20:31 , Processed in 0.366417 second(s), 105 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表