我有URL JSON数组www.example.com/json.php
[ {"name": "Afghanistan", "code": "AF"}, {"name":"ÅlandIslands","code": "AX"}, {"name": "Albania", "code": "AL"}, {"name": "Algeria", "code": "DZ"}, {"name": "American Samoa", "code": "AS"}, {"name": "AndorrA", "code": "AD"}, {"name": "Angola", "code": "AO"}, {"name": "Anguilla", "code": "AI"}, {"name": "Antarctica", "code": "AQ"}, {"name": "Antigua and Barbuda", "code": "AG"}, {"name": "Argentina", "code": "AR"}, {"name": "Armenia", "code": "AM"}, {"name": "Aruba", "code": "AW"}, {"name": "Australia", "code": "AU"}, {"name": "Austria", "code": "AT"}, {"name": "Azerbaijan", "code": "AZ"}, {"name": "Bahamas", "code": "BS"}, {"name": "Bahrain", "code": "BH"}, {"name": "Bangladesh", "code": "BD"}, {"name": "Barbados", "code": "BB"}, {"name": "Belarus", "code": "BY"}, {"name": "Belgium", "code": "BE"}, {"name": "Belize", "code": "BZ"}, {"name": "Benin", "code": "BJ"}, {"name": "Bermuda", "code": "BM"}, {"name": "Bhutan", "code": "BT"}, {"name": "Bolivia", "code": "BO"}, {"name": "Bosnia and Herzegovina", "code": "BA"}, {"name": "Botswana", "code": "BW"}, {"name": "Bouvet Island", "code": "BV"}, {"name": "Brazil", "code": "BR"}, {"name": "British Indian Ocean Territory", "code": "IO"}, {"name": "Brunei Darussalam", "code": "BN"}, {"name": "Bulgaria", "code": "BG"}, {"name": "Burkina Faso", "code": "BF"}, {"name": "Burundi", "code": "BI"}, {"name": "Cambodia", "code": "KH"}, {"name": "Cameroon", "code": "CM"}, {"name": "Canada", "code": "CA"}, {"name": "Cape Verde", "code": "CV"}, {"name": "Cayman Islands", "code": "KY"}, {"name": "Central African Republic", "code": "CF"}, {"name": "Chad", "code": "TD"}, {"name": "Chile", "code": "CL"},{"name": "China", "code": "CN"}, {"name": "Christmas Island", "code": "CX"}, {"name": "Cocos (Keeling) Islands", "code": "CC"}, {"name": "Colombia", "code": "CO"}, {"name": "Comoros", "code": "KM"}, {"name": "Congo", "code": "CG"}, {"name": "Congo, The Democratic Republic of the", "code": "CD"}, {"name": "Cook Islands", "code": "CK"}, {"name": "Costa Rica", "code": "CR"}, {"name": "Cote D\"Ivoire", "code": "CI"}, {"name": "Croatia", "code": "HR"}, {"name": "Cuba", "code": "CU"}, {"name": "Cyprus", "code": "CY"}, {"name": "Czech Republic", "code": "CZ"},{"name": "Denmark", "code": "DK"}, {"name": "Djibouti", "code": "DJ"}, {"name": "Dominica", "code": "DM"}, {"name": "Dominican Republic", "code": "DO"}, {"name": "Ecuador", "code": "EC"}, {"name": "Egypt", "code": "EG"}, {"name": "El Salvador", "code": "SV"}, {"name": "Equatorial Guinea", "code": "GQ"}, {"name": "Eritrea", "code": "ER"},
如何使用关键字查询过滤数据? 像这样的例子:
进行搜索答案 0 :(得分:0)
首先解码您的JSON字符串:
$countries = json_decode($json);
然后,您可以使用array_filter
过滤生成的数组:
$property = 'name';
$keyword = 'nesia';
$result = array_filter($countries, function($country) use ($property, $keyword) {
return strpos($country->$property, $keyword) !== false;
});
在回调中使用strpos
将检查每个项目名称中的关键字。请务必使用严格比较(!==
而不是!=
),因此不会排除名称开头的匹配(索引0)。
答案 1 :(得分:0)
以下代码将按名称过滤该JSON数据:
$term = 'nesia';
$data = json_decode($json);
$filtered = array_filter($data, function($item) use ($term) {
return stripos($item->name, $term) !== false;
});
print_r($filtered);
答案 2 :(得分:-2)
您必须将该URL读入字符串。然后,你应该使用json_decode()Php函数(如果这是你用关键字的意思)。
您可以使用curl命令读取该网址:
$fp = fopen("curl_error.txt", "w");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://osteohickson.com/a/misc/rest_copy/");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $fp);
$result = curl_exec($ch);
var_dump(json_decode($result));
curl_close($ch);
fclose($fp);
然而,该网址:" https://restcountries.eu/rest/v1/all"当我尝试它时被禁止。这意味着您需要一个用户名和密码来访问它的数据。由于我没有,我在另一台服务器上复制了该字符串以进行测试。
现在你可以"得到"数据,你想检查它是如何处理的。