我使用一些网站向我提供有关IP的信息,但该网站以JSON格式返回的信息,我不知道JSON。我想用它来检查用户是否来自IR做了什么,但我不知道如何在php中使用JSON,
这是网站返回的JSON:
{"address":"0.0.0.0.0","country":"IR","stateprov":"somewhere ","city":"Tehr\somewhere (somewhere)"}
我想将国家/地区保存在变量中并将此代码添加到我的网站:
<?php
if($country == 'IR'){
//Do somethong
}
$country
是从网站返回的国家/地区名称,
答案 0 :(得分:4)
您需要使用json_decode()
。
$s = '{"address":"0.0.0.0.0","country":"IR","stateprov":"somewhere ","city":"Tehrsomewhere (somewhere)"}';
$d = json_decode($s);
返回:
stdClass Object
(
[address] => 0.0.0.0.0
[country] => IR
[stateprov] => somewhere
[city] => Tehrsomewhere (somewhere)
)
这样您就可以查看国家/地区/其他字段:
if($d->country == 'IR') {
// do something
}
注意:您的"city"
字段中出现了错误(无效的json),\
使其无效。
您可以通过JSON Lint
检查您的json是否有效。
答案 1 :(得分:0)
我认为您正在寻找功能json_decode
。它会解码JSON string
答案 2 :(得分:0)
首先,我想告诉你,鉴于json无效。由于"city" : "Tehr\somewhere (somewhere)"
,"\"
无效。
因此请将其更改为以下格式。
$jsonEncode = { "address": "0.0.0.0.0","country": "IR","stateprov": "somewhere ","city": "There somewhere (somewhere)"}
$jsonDecode = json_decode($jsonEncode,true);
现在您将获得数组格式的值。
Array(
[address] => 0.0.0.0.0
[country] => IR
[stateprov] => somewhere
[city] => There somewhere (somewhere)
);
print_r($jsonDecode['city']);
会为您提供城市名称或详细信息
答案 3 :(得分:0)
你必须首先解码这个json字符串。
$data = '{"address":"0.0.0.0.0","country":"IR","stateprov":"somewhere ","city":"Tehr\somewhere (somewhere)"}';
$decodeData = json_decode($data);
然后在php中使用这个解码json字符串。
if($decodeData->country == 'IR'){
//Do somethong
}