我在 PHP 中有以下 JSON 响应
{
"tlds": {
".art": {
"register": "16.99",
"transfer": "16.99",
"renew": "16.99",
"transfer_requires_epp_code": true,
"id_protection_supported": true
},
".icu": {
"register": "12.99",
"transfer": "12.99",
"renew": "12.99",
"transfer_requires_epp_code": true,
"id_protection_supported": true
},
".xyz": {
"register": "2.99",
"transfer": "13.99",
"renew": "13.99",
"transfer_requires_epp_code": true,
"id_protection_supported": true
},
".cyou": {
"register": "12.99",
"transfer": "12.99",
"renew": "12.99",
"transfer_requires_epp_code": true,
"id_protection_supported": true
},
".fr": {
"register": "12.99",
"transfer": "12.99",
"renew": "12.99",
"transfer_requires_epp_code": true,
"id_protection_supported": false
},
".be": {
"register": "7.99",
"transfer": "7.99",
"renew": "12.99",
"transfer_requires_epp_code": false,
"id_protection_supported": false
},
".ca": {
"register": "8.99",
"transfer": "8.99",
"renew": "9.99",
"transfer_requires_epp_code": true,
"id_protection_supported": false
},
".ch": {
"register": "8.99",
"transfer": null,
"renew": "13.99",
"transfer_requires_epp_code": true,
"id_protection_supported": true
}
},
"currency_code": "USD",
"message": "Successfully retrieved prices",
"fgt_id": "xxxxxxxxxxxxxxxxx"
}
下面的代码在 php 中回显结果
$response = curl_exec($curl);
$decoded_json = json_decode($response, true);
echo "<table><tr><td>Extension</td><td>Register</td><td>Transfer</td><td>Renew</td></tr>";
foreach ($decoded_json['tlds'] as $key => $value) {
echo "<tr><td>".$decoded_json['tlds']."</td><td>".$value['register']."</td><td>".$value['transfer']."</td><td>".$value['renew']."</td><tr>";
}
echo "</table>";
但这行不通。它破坏了页面。我只提到了 8 个域名后缀,但实际响应中还有更多。这意味着我们必须将域名扩展视为未知键。考虑到 tlds 有很多行且第一个键未知,如何回显响应数据?
在
echo
语句中,更改
.$decoded_json['tlds'].
到
.$key.
这将在表格的第一列中显示 TLD。