日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

kangle支不支持PHP_【转载】PHP调用kangle的API

發布時間:2025/3/8 php 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kangle支不支持PHP_【转载】PHP调用kangle的API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要:

根據管理的API公布寫了一個類封裝了一個操作集合,這是一個kangleAPI的一個封...

根據管理的API公布寫了一個類封裝了一個操作集合,這是一個kangleAPI的一個封裝吧,是在其他地方看到的,接口包含獲取easypanel的信息(包括了kangle的信息)、獲取站點信息、創建kangle站點、修改指定kangle站點信息、獲取kangle站點列表、修改指定kangle站點密碼、修改指定kangle站點狀態、刪除指定kangle站點、獲取指定kangle站點的數據庫使用量。功能很強大,像EP分銷這些都是利用的kangle接口開發的,你還可以開發其他的產品,需要的直接帶走。代碼中包含作者版權,未修改。

調用頁示例:<?php

//引入類

include_once('kangle_init.class.php');

//初始化

//$kangle?=?new?kangle_init('IP或域名(默認127.0.0.1)','端口(默認3312)','秘鑰(默認test)','協議(http/https,默認http)');

$kangle?=?new?kangle_init('127.0.0.1','3312','asfsvsvsyYD6Y6ue','http');

//調用方法示例,具體請參照類文件,有詳細的代碼注釋說明

$kangle->update_vh('test',0)

封裝的函數:<?php

class?kangle_init{

/*

*?配置需求:PHP?>=?5.2.0

*?by:??千里潰

*?參照出處:?https://www.kanglesoft.com/thread-44506-1-1.html

*?c?:?(control)表示哪個控制文件(目前有whm,cdn)

*?a?:?(action)表示哪個方法,以下介紹

*?r?:?隨機數

*?s?:?秘鑰,通過md5(a?+?skey?+r)得到,如a=add,skey=test,r=888,則s=md5(addtest888)

*?其中skey是服務器安全碼

*?所有返回成功都報[result]?=>?200

*?不成功報[result]?=>?500?或者?新建(修改)站點時?product_id?和?product_name?都存在參數時報?[result]?=>?505

*/

public?$protocol?;

public?$ip;

public?$port;

public?$r;

public?$skey;

public?function?__construct($ip?=?'127.0.0.1',$port?=?'3312',$skey?=?'test',$protocol?=?'http')

{

$this->protocol?=?$protocol;?//僅支持http和https

$this->ip?=?$ip;

$this->port?=?$port;

$this->r?=?rand(100000,999999);

$this->skey?=?$skey;

}

public?function?__destruct()

{

//?TODO:?Implement?__destruct()?method.

}

public?function?url($info=array()){

$url?=?'';

foreach?($info?as?$k=>$v){

$url?.=?$k.'='.$v.'&';

}

return?$this->protocol.'://'.$this->ip.':'.$this->port.'/api/index.php?'.$url.'r='.$this->r.'&s='.md5($info['a'].$this->skey.$this->r).'&json=1';

}

public?function?open($info=array()){

$url?=?$this->url($info);

if(function_exists('curl_init')){

$ch?=?curl_init();

curl_setopt($ch,?CURLOPT_URL,?$url);

curl_setopt($ch,?CURLOPT_TIMEOUT,?5);

curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);

if?($this->protocol?==?'https'?or?$this->protocol?==?'HTTPS'){

curl_setopt($ch,?CURLOPT_SSL_VERIFYPEER,?false);?//?跳過證書檢查

curl_setopt($ch,?CURLOPT_SSL_VERIFYHOST,?true);??//?從證書中檢查SSL加密算法是否存在

}

$r?=?curl_exec($ch);

curl_close($ch);

return?json_decode($r,true);

}else{

return?json_decode(file_get_contents($url),true);

}

}

//獲取easypanel的信息(包括了kangle的信息)

public?function?info(){

/*

*?c?:?whm

*?a?:?info

*?調用成功后你將得到如下返回數據:

*?{"result":200,"server":[{"0":"kangle"}],"version":[{"0":"3.4.8"}],"type":[{"0":"enterprise"}],"os":[{"0":"windows"}],"license_id":[{"0":"73646_1387957818"}],"license_name":[{"0":"dsdds"}],"total_run":[{"0":"611038"}],"connect":[{"0":"4"}],"request":[{"0":"14105"}],"accept":[{"0":"4722"}],"vh":[{"0":"43"}],"kangle_home":[{"0":"D:\\\easypanel\\"}],"update_code":[{"0":"win_x64"}],"easypanel_version":"2.6.17"}

*?其中result=200表示調用成功。

*?version是kangle的版本

*?type是kangle的商業版還是免費版(enterprise??or?free)

*?total_run?是運行時間

*?vh?是虛擬主機數量

*?connect是當前有多少請求進來。

*

*/

return?$this->open(array('c'=>'whm','a'=>'info'));

}

//獲取站點信息

public?function?getvh($name?=?null){

/*

*?c?:?whm

*?a?:?getVh

*?name?:?(虛擬主機名稱)

*

*?返回的虛擬主機的參數說明

*?name?:?主機名稱

*?doc_root:主機的主目錄

*?uid:系統生成(用戶在服務器上的賬戶ID),權限控制使用。不可更改。

*?gid?:系統賬戶組ID

*?module:是屬于哪個模塊,目前有php和iis兩個模塊。

*?templete,subtemplete,已廢棄

*?create_time?:創建時間

*?expire_time2?:過期時間

*?status:站點狀態,0正常,1為關閉。

*?subdir_flag?是否允許子域名,1為允許,0為不允許

*?subdir?默認子目錄名稱

*?web_quota?空間大小

*?db_quota?數據庫大小

*?domain?:允許綁定域名數量?-1為不限

*?max_connect?最多連接數

*?max_worker?最多工作者

*?ftp?:?是否開通ftp,1為開通,0為不開通

*?db_name?數據庫名稱(一般和主機名稱等同,sql?server?特殊)

*/

return?$this->open(array('c'=>'whm','a'=>'getVh','name'=>$name));

}

//創建站點

public?function?add_vh($info?=?array()){

/*

*?固定值:

*?c?:?whm

*?a?:?add_vh

*?r?:?隨機

*?s?:?秘鑰

*?init?:?1??//表示創建

*?name:網站賬號,數據庫賬號,ftp賬號同步

*?passwd:網站密碼,數據庫密碼,ftp密碼同步(只創建時同步)

*?product_id?和?product_name?都存在參數時報?[result]?=>?505,product_id?和?product_name?只能存在一個或者?一個都不存在,當一個都不存在時?詳細配置虛擬主機參數

*/

if(trim(intval($info['product_id']))?!=?null?and?trim($info['product_name'])?!=?null){

return?array('result'=>'505');

}elseif(trim(intval($info['product_id']))?!=?null){

return?$this->open(array('c'=>'whm','a'=>'add_vh','init'=>1,'name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_id']));

}elseif?(trim($info['product_name'])?!=?null){

return?$this->open(array('c'=>'whm','a'=>'add_vh','init'=>1,'name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_name']));

}else{

/*

*?詳細配置模式下的傳入值列表

*?cdn:是否為CDN空間,是則發送1

*?Templete:語言(html|php|iis)

*?Subtemplete:語言引擎,php52|php53|php5217

*?web_quota:網頁空間大小,數字

*?db_quota:數據庫大小,數字

*?db_type:數據庫類型,mysql|sqlsrv

*?subdir_flag:是否允許綁定子目錄,1為是

*?Subdir:默認綁定目錄,可為空,例:wwwroot

*?max_subdir:最多子目錄數

*?domain:需要綁定的域名,可空,默認會綁定到subdir指?定的目錄下。

*?ftp:是否開啟ftp,1為是

*?ftp_connect:ftp最多連接數

*?ftp_usl:ftp上傳速度限制,單位kb

*?ftp_dsl:ftp下載限制。單位kb

*?access:是否啟用自定義控制,如果是請輸入自定義控制文件名access.xml

*?speed_limit:帶寬限制,數字型,默認為不限(kb)

*?log_handle:是否開啟日志析分功能,1為是

*?flow_limit:流量限制,數字型,默認不限(kb)

*/

$info=array('c'=>'whm','a'=>'add_vh','init'=>1,'name'=>$info['name'],'passwd'=>$info['passwd']);

return?$this->open($info);

}

}

//修改站點信息

public?function?edit_vh($info?=?array()){

/*

*?固定值:

*?c?:?whm

*?a?:?add_vh

*?r?:?隨機

*?s?:?秘鑰

*?edit?:?1??//表示修改

*?name:網站賬號,數據庫賬號,ftp賬號同步

*?passwd:網站密碼,數據庫密碼,ftp密碼同步(只創建時同步)

*??product_id?和?product_name?都存在參數時報?[result]?=>?505,product_id?和?product_name?只能存在一個或者?一個都不存在,當一個都不存在時?詳細配置虛擬主機參數

*/

if(trim(intval($info['product_id']))?!=?null?and?trim($info['product_name'])?!=?null){

return?array('result'=>'505');

}elseif(trim(intval($info['product_id']))?!=?null){

return?$this->open(array('c'=>'whm','a'=>'add_vh','edit'=>'1','name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_id']));

}elseif?(trim($info['product_name'])?!=?null){

return?$this->open(array('c'=>'whm','a'=>'add_vh','edit'=>'1','name'=>$info['name'],'passwd'=>$info['passwd'],'product_id'=>$info['product_name']));

}else{

/*

*?詳細配置模式下的傳入值列表

*?cdn:是否為CDN空間,是則發送1

*?Templete:語言(html|php|iis)

*?Subtemplete:語言引擎,php52|php53|php5217

*?web_quota:網頁空間大小,數字

*?db_quota:數據庫大小,數字

*?db_type:數據庫類型,mysql|sqlsrv

*?subdir_flag:是否允許綁定子目錄,1為是

*?Subdir:默認綁定目錄,可為空,例:wwwroot

*?max_subdir:最多子目錄數

*?domain:需要綁定的域名,可空,默認會綁定到subdir指?定的目錄下。

*?ftp:是否開啟ftp,1為是

*?ftp_connect:ftp最多連接數

*?ftp_usl:ftp上傳速度限制,單位kb

*?ftp_dsl:ftp下載限制。單位kb

*?access:是否啟用自定義控制,如果是請輸入自定義控制文件名access.xml

*?speed_limit:帶寬限制,數字型,默認為不限(kb)

*?log_handle:是否開啟日志析分功能,1為是

*?flow_limit:流量限制,數字型,默認不限(kb)

*/

$info=array('c'=>'whm','a'=>'add_vh','edit'=>'1','name'=>$info['name'],'passwd'=>$info['passwd']);

return?$this->open($info);

}

}

//獲取站點列表

public?function?listvh(){

/*

*?a?:?whm

*?c?:?listVh

*/

return?$this->open(array('c'=>'whm','a'=>'listVh'));

}

//修改站點密碼

public?function?change_password($name,$passwd){

/*

*?c?:whm

*?a?:?change_password

*?name?:站點名稱

*?passwd?:新的密碼

*/

return?$this->open(array('c'=>'whm','a'=>'change_password','name'=>$name,'passwd'=>$passwd));

}

//修改站點狀態

public?function?update_vh($name,$status){

/*

*?c?:whm

*?a?:?update_vh

*?name?:站點名稱

*?status?:?新狀態(0正常,1關閉)

*/

return?$this->open(array('c'=>'whm','a'=>'update_vh','name'=>$name,'status'=>$status));

}

//刪除站點

public?function?del_vh($name){

/*

*?c?:whm

*?a?:?del_vh

*?name?:站點名稱

*/

return?$this->open(array('c'=>'whm','a'=>'del_vh','name'=>$name));

}

//獲取站點的數據庫使用量

public?function?getDbUsed($name){

/*

*?c?:whm

*?a?:?getDbUsed

*?name?:站點名稱

*/

return?$this->open(array('c'=>'whm','a'=>'getDbUsed','name'=>$name));

}

}

總結

以上是生活随笔為你收集整理的kangle支不支持PHP_【转载】PHP调用kangle的API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。