使用Name.com API(PHP)

使用Name.com API(PHP),php,api,class,Php,Api,Class,我现在正在使用Name.com API,他们有关于如何获取详细信息的文档说明 我把一切都做好了,但是我不能打印结果 我已经完成了var_dump()调试,结果如下: object(stdClass)#4 (2) { ["result"]=> object(stdClass)#5 (2) { ["code"]=> int(100) ["message"]=> string(18) "Command Successful" } ["d

我现在正在使用Name.com API,他们有关于如何获取详细信息的文档说明

我把一切都做好了,但是我不能打印结果

我已经完成了var_dump()调试,结果如下:

object(stdClass)#4 (2) { 
    ["result"]=> object(stdClass)#5 (2) { 
        ["code"]=> int(100) ["message"]=> string(18) "Command Successful" 
    } 
    ["domains"]=> object(stdClass)#6 (8) { 
        ["mynewdomain.mobi"]=> object(stdClass)#7 (5) { 
            ["avail"]=> bool(true) 
            ["tld"]=> string(4) "mobi" 
            ["price"]=> string(4) "8.99" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(false) 
        } 
        ["mynewdomain.net"]=> object(stdClass)#8 (5) { 
            ["avail"]=> bool(false) 
            ["tld"]=> string(3) "net" 
            ["price"]=> string(5) "49.95"
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(true) 
        } 
        ["mynewdomain.org"]=> object(stdClass)#9 (5) { 
            ["avail"]=> bool(true) 
            ["tld"]=> string(3) "org" 
            ["price"]=> string(4) "9.99" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(false) 
        } 
        ["mynewdomain.info"]=> object(stdClass)#10 (5) { 
            ["avail"]=> bool(true) 
            ["tld"]=> string(4) "info" 
            ["price"]=> string(4) "3.99" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(false) 
        } 
        ["mynewdomain.com"]=> object(stdClass)#11 (5) { 
            ["avail"]=> bool(false) 
            ["tld"]=> string(3) "com" 
            ["price"]=> string(5) "49.95" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(true) 
        } 
        ["mynewdomain.biz"]=> object(stdClass)#12 (5) { 
            ["avail"]=> bool(false) 
            ["tld"]=> string(3) "biz" 
            ["price"]=> string(5) "29.95" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(true) 
        } 
        ["mynewdomain.me"]=> object(stdClass)#13 (5) { 
            ["avail"]=> bool(false) 
            ["tld"]=> string(2) "me" 
            ["price"]=> string(5) "49.95" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(true) 
        } 
        ["mynewdomain.tv"]=> object(stdClass)#14 (5) { 
            ["avail"]=> bool(false) 
            ["tld"]=> string(2) "tv" 
            ["price"]=> string(5) "49.95" 
            ["premium"]=> bool(false) 
            ["backorder"]=> bool(true) 
        }
    } 
}
这是列出域的另一个简短结果:

object(stdClass)#4 (2) { 
    ["result"]=> object(stdClass)#5 (2) { 
        ["code"]=> int(100) 
        ["message"]=> string(18) "Command Successful" 
    } 
    ["domains"]=> array(0) { } 
}
我尝试了以下方法:

  • echo$response

  • echo$response->domains

  • echo$response['domains']

但真的,我不能让它工作…有人能帮我吗


提前感谢,

在我看来,所有内容首先都在一个
结果中。试试这个:

echo $response["result"]["domains"];

在我看来,一切首先都在一个
结果
数组中。试试这个:

echo $response["result"]["domains"];

请尝试此选项以获取消息:

echo $response->result->message;
要获取域列表,请执行以下操作:

foreach ($response->domains as $domainName => $domainData)
{

    echo $domainName.": available-".$domainData->avail."; price - ".$domainData->price;

}

请尝试此选项以获取消息:

echo $response->result->message;
要获取域列表,请执行以下操作:

foreach ($response->domains as $domainName => $domainData)
{

    echo $domainName.": available-".$domainData->avail."; price - ".$domainData->price;

}

看起来您要取回一堆对象,因此需要遍历$response->domains。我会将其推到一个新的var,以便于处理,如:

$domains = &$response->domains;

foreach($domains as $key => $value) {
  echo $key.":\n";
  foreach($value as $a => $b) {
    if($b === true) $b = 'yes';
    if($b === false) $b = 'no';
    echo $a.": ".$b."\n";
  }
}

注意:$response->result只包含您发送给服务器的命令的结果。检查以确保没有出现错误,但不要期望数据出现在那里。

看起来您要取回一堆对象,因此需要遍历$response->domains。我会将其推到一个新的var,以便于处理,如:

$domains = &$response->domains;

foreach($domains as $key => $value) {
  echo $key.":\n";
  foreach($value as $a => $b) {
    if($b === true) $b = 'yes';
    if($b === false) $b = 'no';
    echo $a.": ".$b."\n";
  }
}


注意:$response->result只包含您发送给服务器的命令的结果。检查以确保您没有出错,但不希望您的数据在其中。

不是
结果的子元素
未工作:致命错误:无法将stdClass类型的对象用作arrayHmmm,抱歉,当我回答时,我没有注意到输出何时在一行上。
domains
不是
result
的子元素未工作:致命错误:无法将stdClass类型的对象用作arrayHmmm,对不起,我回答时没有注意到输出何时在一行上。我已经尝试了这一点,并得到了一个白色页面,通过调试,我得到:array(0){你能做一个序列化($response);-回显并发布它,这样我就可以将该类放入测试页面并查看发生了什么?结果已经出来,但所有域都可用:
example.orgstdClass对象([avail]=>[tld]=>org[price]=>49.95[premium]=>[backorder]=>1)example.netstclass对象([avail]=>[tld]=>net[price]=>49.95[premium]=>backorder]=>1)example.infostdClass对象([avail]=>[tld]=>info[price]=>49.95[premium]=>[backorder]=>1)example.mobistdClass对象([avail]=>[tld]=>mobi[price]=>49.95[premium]=>[backorder]=>1)
好吧,看来它可以用了,我会编辑我的答案来处理域中的对象。谢谢,我试过你编辑过的代码,得到了所有的对象,但是之前的问题是一样的,所有的域都是可用的,结果是:
google.com:avail:tld:com价格:9.99高级:backorder:
这里还有序列化:
O:8:stdClass:2:{s:6:result;O:8:stdClass:2:{s:4:code;I:100;s:7:message;s:18:Command Successful”}s:7:“域”;O:8:“stdClass”:8:{s:10:“google.net”;O:8:“stdClass”:5:{s:5:“avail”;b:0;s:3:“tld”;s:3:“net”;s:5:“price”;s:5:“49.95”;s:7:“premium”;b:0;s:9:“backorder”;b:1;}
我已经尝试过了,得到了一个白页,通过调试,我得到了:array(0){}你能做一个序列化($response);-回显并发布它,这样我就可以将该类放入测试页面并查看发生了什么?结果已经出来,但所有域都可用:
example.orgstdClass对象([avail]=>[tld]=>org[price]=>49.95[premium]=>[backorder]=>1)example.netstclass对象([avail]=>[tld]=>net[price]=>49.95[premium]=>backorder]=>1)example.infostdClass对象([avail]=>[tld]=>info[price]=>49.95[premium]=>[backorder]=>1)example.mobistdClass对象([avail]=>[tld]=>mobi[price]=>49.95[premium]=>[backorder]=>1)
好吧,看来它可以用了,我会编辑我的答案来处理域中的对象。谢谢,我试过你编辑过的代码,得到了所有的对象,但是之前的问题是一样的,所有的域都是可用的,结果是:
google.com:avail:tld:com价格:9.99高级:backorder:
这里还有序列化:
O:8:stdClass:2:{s:6:result;O:8:stdClass:2:{s:4:code;I:100;s:7:message;s:18:Command Successful”}s:7:“域名”;O:8:“标准类”:8:{s:10:“google.net”;O:8:“标准类”:5:{s:5:“avail”;b:0;s:3:“tld”;s:3:“net”;s:5:“price”;s:5:“49.95”;s:7:“premium”;b:0;s:9:“backorder”;b:1;}}
我成功地收到了消息,但列表给了我白页。@MohamedMagdy你试过下面的代码了吗$domainData是StdClass对象。在我尝试使用check_domain检查列表_域时,再次尝试了它,消息成功发送,但所有域都可用,它没有检查。@第二个示例域中的MohamedMagdy是空数组。我发布了第一个示例的代码,其中域是stdClass对象。您可以用第二个数据检查它吗?我已经为这个
$response=$api->check_domain('example')尝试了您的代码它成功地处理了列表和价格,但所有都可用,您想让我向您发送包含所有类的完整API吗?我成功地收到消息,但列表给了我白页。@MohamedMagdy您尝试过我下面的代码了吗$domainData是StdClass对象。在我尝试使用check_domain检查列表_域时,再次尝试了它,消息成功发送,但所有域都可用,它没有检查。@第二个示例域中的MohamedMagdy是空数组。我发布了第一个示例的代码,其中域是stdClass对象。您可以用第二个数据检查它吗?我已经为这个
$response=$api->check_domain('example')尝试了您的代码它成功地处理了列表和价格,但是所有的都可用,你想让我给你发送包含所有类的完整API吗?