Код (Text): echo '{"pole":"'.$objripe->objects->object[1]->attributes->attribute[0]->name.'""}';?> Все прекрасно декодирует, но мне хотелось сначала сделать некоторое сравнение. Я хочу вывести "value" : "Marc Tomso" и даже знаю как Код (Text): echo '{"pole":"'.$objripe->objects->object[1]->attributes->attribute[0]->value.'""}';?> Но нужно вывести value только в том случае если есть "name" : "person" Так как name может быть разный и в разных строках. Код (Text): "attributes" : { "attribute" : [ { "name" : "person", "value" : "Marc Tomso" Сам не понимаю как - помогите
PHP: echo ( $objripe->objects->object[0]->attributes->attribute[0]->name == 'person' ? '{"pole":"'.$objripe->objects->object[1]->attributes->attribute[0]->value.'""}' : FALSE );
Спасибо, работает но немного не так.. Хотелось бы сделать Код (Text): attribute[]->name Так как полей море и не всегда attribute[0]->name - соответствует первой строке
Есть полный json который ты декодируешь? Потом тебе нужно какой получить json в результате? Там странно echo смотрится когда можно было бы использовать jsin_encode
Example: Код (Text): {"service" : { "name" : "search" }, "parameters" : { "inverse-lookup" : { }, "type-filters" : { }, "flags" : { }, "query-strings" : { "query-string" : [ { "value" : "79.171.200.181" } ] }, "sources" : { } }, "objects" : { "object" : [ { "type" : "inetnum", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "inetnum", "value" : "79.171.200.0 - 79.171.201.255" } ] }, "attributes" : { "attribute" : [ { "name" : "inetnum", "value" : "79.171.200.0 - 79.171.201.255" }, { "name" : "netname", "value" : "FDNET" }, { "name" : "descr", "value" : "freenet digital GmbH" }, { "name" : "country", "value" : "DE" }, { "name" : "org", "value" : "ORG-JG6-RIPE", "referenced-type" : "organisation" }, { "name" : "admin-c", "value" : "TB5890-RIPE", "referenced-type" : "person" }, { "name" : "tech-c", "value" : "MW8308-RIPE", "referenced-type" : "person" }, { "name" : "status", "value" : "ASSIGNED PA" }, { "name" : "mnt-by", "value" : "NEXINTO-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-by", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-routes", "value" : "EASYNET-DE-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-routes", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2012-03-22T13:38:41Z" }, { "name" : "last-modified", "value" : "2016-02-17T12:38:06Z" }, { "name" : "source", "value" : "RIPE" } ] }, "tags" : { "tag" : [ { "id" : "RIPE-USER-RESOURCE" } ] } }, { "type" : "organisation", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "organisation", "value" : "ORG-JG6-RIPE" } ] }, "attributes" : { "attribute" : [ { "name" : "organisation", "value" : "ORG-JG6-RIPE" }, { "name" : "org-name", "value" : "freenet digital GmbH" }, { "name" : "org-type", "value" : "LIR" }, { "name" : "address", "value" : "Karl-Liebknecht-Str.32" }, { "name" : "address", "value" : "10178" }, { "name" : "address", "value" : "Berlin" }, { "name" : "address", "value" : "GERMANY" }, { "name" : "phone", "value" : "+4930695381000" }, { "name" : "fax-no", "value" : "+4930695381599" }, { "name" : "admin-c", "value" : "MW8308-RIPE", "referenced-type" : "person" }, { "name" : "admin-c", "value" : "MB28346-RIPE", "referenced-type" : "person" }, { "name" : "mnt-ref", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-ref", "value" : "RIPE-NCC-HM-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-by", "value" : "RIPE-NCC-HM-MNT", "referenced-type" : "mntner" }, { "name" : "abuse-c", "value" : "FDH46-RIPE", "referenced-type" : "role" }, { "name" : "tech-c", "value" : "MB28346-RIPE", "referenced-type" : "person" }, { "name" : "created", "value" : "2007-07-18T10:11:06Z" }, { "name" : "last-modified", "value" : "2016-02-17T13:02:38Z" }, { "name" : "source", "value" : "RIPE", "comment" : "Filtered" } ] } }, { "type" : "person", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "nic-hdl", "value" : "MW8308-RIPE" } ] }, "attributes" : { "attribute" : [ { "name" : "person", "value" : "Marc Westphal" }, { "name" : "address", "value" : "freenet digital GmbH" }, { "name" : "address", "value" : "Karl-Liebknecht-Strasse 32" }, { "name" : "address", "value" : "10178 Berlin" }, { "name" : "address", "value" : "Germany" }, { "name" : "phone", "value" : "+49 30 695 38 1000" }, { "name" : "nic-hdl", "value" : "MW8308-RIPE" }, { "name" : "mnt-by", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2016-02-17T12:37:15Z" }, { "name" : "last-modified", "value" : "2016-02-17T12:37:15Z" }, { "name" : "source", "value" : "RIPE", "comment" : "Filtered" } ] } }, { "type" : "person", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "nic-hdl", "value" : "TB5890-RIPE" } ] }, "attributes" : { "attribute" : [ { "name" : "person", "value" : "Thomas Boerner" }, { "name" : "address", "value" : "freenet digital GmbH" }, { "name" : "address", "value" : "Karl-Liebknecht-Strasse 32" }, { "name" : "address", "value" : "10178 Berlin" }, { "name" : "address", "value" : "Germany" }, { "name" : "phone", "value" : "+4930695381230" }, { "name" : "nic-hdl", "value" : "TB5890-RIPE" }, { "name" : "mnt-by", "value" : "TB73395-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2012-02-21T16:22:01Z" }, { "name" : "last-modified", "value" : "2015-10-26T09:20:34Z" }, { "name" : "source", "value" : "RIPE", "comment" : "Filtered" } ] } }, { "type" : "route", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "origin", "value" : "AS34031" } ] }, "attributes" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "descr", "value" : "freenet digital" }, { "name" : "origin", "value" : "AS34031", "referenced-type" : "aut-num" }, { "name" : "mnt-by", "value" : "EASYNET-DE-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2008-07-31T11:25:17Z" }, { "name" : "last-modified", "value" : "2014-06-03T10:14:11Z" }, { "name" : "source", "value" : "RIPE" } ] } }, { "type" : "route", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "origin", "value" : "AS6659" } ] }, "attributes" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "descr", "value" : "freenet digital" }, { "name" : "origin", "value" : "AS6659", "referenced-type" : "aut-num" }, { "name" : "mnt-by", "value" : "NEXINTO-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2014-10-09T11:21:39Z" }, { "name" : "last-modified", "value" : "2014-10-09T11:21:39Z" }, { "name" : "source", "value" : "RIPE" } ] } } ] } } Нужно просто данные стянуть с Код (Text): "attributes" : { "attribute" : [ { "name" : "person",
PHP: <?php header('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html> <html> <head> <title></title> </head> <body> <pre> <?php $j = '{"service" : { "name" : "search" }, "parameters" : { "inverse-lookup" : { }, "type-filters" : { }, "flags" : { }, "query-strings" : { "query-string" : [ { "value" : "79.171.200.181" } ] }, "sources" : { } }, "objects" : { "object" : [ { "type" : "inetnum", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "inetnum", "value" : "79.171.200.0 - 79.171.201.255" } ] }, "attributes" : { "attribute" : [ { "name" : "inetnum", "value" : "79.171.200.0 - 79.171.201.255" }, { "name" : "netname", "value" : "FDNET" }, { "name" : "descr", "value" : "freenet digital GmbH" }, { "name" : "country", "value" : "DE" }, { "name" : "org", "value" : "ORG-JG6-RIPE", "referenced-type" : "organisation" }, { "name" : "admin-c", "value" : "TB5890-RIPE", "referenced-type" : "person" }, { "name" : "tech-c", "value" : "MW8308-RIPE", "referenced-type" : "person" }, { "name" : "status", "value" : "ASSIGNED PA" }, { "name" : "mnt-by", "value" : "NEXINTO-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-by", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-routes", "value" : "EASYNET-DE-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-routes", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2012-03-22T13:38:41Z" }, { "name" : "last-modified", "value" : "2016-02-17T12:38:06Z" }, { "name" : "source", "value" : "RIPE" } ] }, "tags" : { "tag" : [ { "id" : "RIPE-USER-RESOURCE" } ] } }, { "type" : "organisation", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "organisation", "value" : "ORG-JG6-RIPE" } ] }, "attributes" : { "attribute" : [ { "name" : "organisation", "value" : "ORG-JG6-RIPE" }, { "name" : "org-name", "value" : "freenet digital GmbH" }, { "name" : "org-type", "value" : "LIR" }, { "name" : "address", "value" : "Karl-Liebknecht-Str.32" }, { "name" : "address", "value" : "10178" }, { "name" : "address", "value" : "Berlin" }, { "name" : "address", "value" : "GERMANY" }, { "name" : "phone", "value" : "+4930695381000" }, { "name" : "fax-no", "value" : "+4930695381599" }, { "name" : "admin-c", "value" : "MW8308-RIPE", "referenced-type" : "person" }, { "name" : "admin-c", "value" : "MB28346-RIPE", "referenced-type" : "person" }, { "name" : "mnt-ref", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-ref", "value" : "RIPE-NCC-HM-MNT", "referenced-type" : "mntner" }, { "name" : "mnt-by", "value" : "RIPE-NCC-HM-MNT", "referenced-type" : "mntner" }, { "name" : "abuse-c", "value" : "FDH46-RIPE", "referenced-type" : "role" }, { "name" : "tech-c", "value" : "MB28346-RIPE", "referenced-type" : "person" }, { "name" : "created", "value" : "2007-07-18T10:11:06Z" }, { "name" : "last-modified", "value" : "2016-02-17T13:02:38Z" }, { "name" : "source", "value" : "RIPE", "comment" : "Filtered" } ] } }, { "type" : "person", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "nic-hdl", "value" : "MW8308-RIPE" } ] }, "attributes" : { "attribute" : [ { "name" : "person", "value" : "Marc Westphal" }, { "name" : "address", "value" : "freenet digital GmbH" }, { "name" : "address", "value" : "Karl-Liebknecht-Strasse 32" }, { "name" : "address", "value" : "10178 Berlin" }, { "name" : "address", "value" : "Germany" }, { "name" : "phone", "value" : "+49 30 695 38 1000" }, { "name" : "nic-hdl", "value" : "MW8308-RIPE" }, { "name" : "mnt-by", "value" : "JAMBA-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2016-02-17T12:37:15Z" }, { "name" : "last-modified", "value" : "2016-02-17T12:37:15Z" }, { "name" : "source", "value" : "RIPE", "comment" : "Filtered" } ] } }, { "type" : "person", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "nic-hdl", "value" : "TB5890-RIPE" } ] }, "attributes" : { "attribute" : [ { "name" : "person", "value" : "Thomas Boerner" }, { "name" : "address", "value" : "freenet digital GmbH" }, { "name" : "address", "value" : "Karl-Liebknecht-Strasse 32" }, { "name" : "address", "value" : "10178 Berlin" }, { "name" : "address", "value" : "Germany" }, { "name" : "phone", "value" : "+4930695381230" }, { "name" : "nic-hdl", "value" : "TB5890-RIPE" }, { "name" : "mnt-by", "value" : "TB73395-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2012-02-21T16:22:01Z" }, { "name" : "last-modified", "value" : "2015-10-26T09:20:34Z" }, { "name" : "source", "value" : "RIPE", "comment" : "Filtered" } ] } }, { "type" : "route", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "origin", "value" : "AS34031" } ] }, "attributes" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "descr", "value" : "freenet digital" }, { "name" : "origin", "value" : "AS34031", "referenced-type" : "aut-num" }, { "name" : "mnt-by", "value" : "EASYNET-DE-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2008-07-31T11:25:17Z" }, { "name" : "last-modified", "value" : "2014-06-03T10:14:11Z" }, { "name" : "source", "value" : "RIPE" } ] } }, { "type" : "route", "source" : { "id" : "ripe" }, "primary-key" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "origin", "value" : "AS6659" } ] }, "attributes" : { "attribute" : [ { "name" : "route", "value" : "79.171.200.0/22" }, { "name" : "descr", "value" : "freenet digital" }, { "name" : "origin", "value" : "AS6659", "referenced-type" : "aut-num" }, { "name" : "mnt-by", "value" : "NEXINTO-MNT", "referenced-type" : "mntner" }, { "name" : "created", "value" : "2014-10-09T11:21:39Z" }, { "name" : "last-modified", "value" : "2014-10-09T11:21:39Z" }, { "name" : "source", "value" : "RIPE" } ] } } ] } }'; $arr = json_decode($j, true); foreach ($arr['objects'] as $objects) { foreach ($objects as $object) { foreach ($object['attributes'] as $attribute) { foreach ($attribute as $array) { if (empty($array['name']) == false && $array['name'] == 'person') { echo json_encode(array('person'=>$array['value']), JSON_PRETTY_PRINT ), PHP_EOL; } } } } } ?> </pre> </body> </html>