我有以下路线:
Route::get('/verifica-dominio', function() {
$dom = Input::get('dominio');
$dominio = explode('.', Input::get('dominio'));
$name= $dominio[0];
$tld = $dominio[1];
$url = 'https://api.cloudns.net/domains/check-available.json?auth-id=1243&auth-password=KNK-dn5.&name=' . $name . '&tld[]=' . $tld;
$json = file_get_contents($url, true, stream_context_create(['socket' => ['bindto' => '0:0']]));
$j = json_decode($json);
return var_dump($j);
});
它返回此对象
object(stdClass)#1023 (1) { ["provola.com"]=> object(stdClass)#1024 (1) { ["status"]=> int(0) } }
我的代码中如何获得status = 1?
答案 0 :(得分:2)
你可以使用json_decode()
,它接受一个JSON编码的字符串并将其转换为PHP变量。
$j = json_decode($json, TRUE);
print_r($j);
和你的php部分你可以使用php数组来处理数据
这是常见的格式
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
echo "<pre>";
print_r(json_decode($json, true));
?>
,输出结果为:
Array
(
[a] => 1
[b] => 2
[c] => 3
[d] => 4
[e] => 5
)
了解更多信息
答案 1 :(得分:0)
将TRUE
作为json_decode()
的第二个参数传递给它,使其将JSON解码为数组而不是对象:
$j = json_decode($json, TRUE);
print_r($j);
输出:
Array
(
[provola.com] => Array
(
[status] => 0
)
)
现在一切都变得更清晰,更容易处理。 $j['pravola.com']['status']
是您正在寻找的价值。
如果不是更清楚,请阅读PHP arrays并坚持"Accessing array elements with square bracket syntax"部分。
我想密钥'pravola.com'
是您在参数tld
中传递给远程API的内容。如果是这种情况,那么您可以使用$j[$tld]['status']
来获取所需的数据。