Directadmin CMD_API_SHOW_DOMAINS 域数组
Posted
技术标签:
【中文标题】Directadmin CMD_API_SHOW_DOMAINS 域数组【英文标题】:Directadmin CMD_API_SHOW_DOMAINS domains array 【发布时间】:2016-11-30 12:27:43 【问题描述】:我想集成 Directadmin CMD_API_SHOW_DOMAINS 功能,但我不明白如何分解返回的数组。
目前,我正在使用此代码:
<?
include("httpsocket.php");
$sock = new HTTPSocket;
$sock->connect('myip',2222);
$sock->set_login('admin', 'pass123');
$user= "username"; //user which own printed domains.
$sock->query('/CMD_API_SHOW_USER_DOMAINS?user='.$user);
$domains = $sock->fetch_parsed_body();
print_r ($domains); // printing fetched array
?>
我收到了这个:
Array ( [rara_com] => 0.000000:unlimited:0.0664062:0.000000:0:no:unlimited:OFF:ON:ON )
对于具有 rara.com 域的用户 x。此 api 显示所有域,因此页面中可能显示更多数组,例如用户 Y 有 3 个域。 google.com、yahoo.com、***.com,所以 api 会返回结果:
Array ( [google_com] => 0.000000:unlimited:0.0664062:0.000000:0:no:unlimited:OFF:ON:ON ) Array ( [yahoo_com] => 0.000000:unlimited:0.0664062:0.000000:0:no:unlimited:OFF:ON:ON ) Array ( [***_com] => 0.000000:unlimited:0.0664062:0.000000:0:no:unlimited:OFF:ON:ON )
如何爆炸这些数组?这对我来说真的很头疼。我只需要第一个元素(域名,例如 rara_com、google_com)
Directadmin api https://www.directadmin.com/api.php(函数 CMD_API_SHOW_DOMAINS)
规格在底部↓↓↓
Get User Domains:
Function Retrieve the list of domains owned by the user, and some basic stats
Command CMD_API_SHOW_USER_DOMAINS
Method GET
Success Returns url encoded array
Failure Returns error=1
Form Values:
Name Value
user Username of the user for which you wish to view the stats
Array Returns Values
Name Value
domain.com Colon speparated list with domain information: eg. 6757.4:unlimited:0.000356674:93.5:2:no:unlimited:ON:ON:ON where the data is bandwidth used:bandwidth limit:disk usage for the domain:log usage for the domain:# of subdomains:suspended:quota:ssl:cgi:php
( domain2.com ... ) Same as domain.com, one entry for each domain
【问题讨论】:
有人吗?我真的需要帮助。 【参考方案1】:您希望在 foreach 循环中获取结果,在该循环中您将结果定义为键值对。
这是我用来做同样事情的代码:
$sock = new HTTPSocket;
$sock->connect("ssl://" . $server,2222);
$sock->set_login('foo','bar');
$sock->query('/CMD_API_SHOW_USER_DOMAINS?user=' . $user);
$result = $sock->fetch_parsed_body();
if(empty($result))
echo "Problem connecting to server: " . $server;
else
foreach($result as $key => $value)
echo 'Domain : ' . $key;
;
;
您需要将 _ 字符串替换为 .在您的结果中,因为域值带有下划线而不是扩展名中的句点。
【讨论】:
以上是关于Directadmin CMD_API_SHOW_DOMAINS 域数组的主要内容,如果未能解决你的问题,请参考以下文章