Получение информации с другого сайта

Тема в разделе "Как сделать...", создана пользователем djvavik, 23 апр 2019.

Статус темы:
Закрыта.
  1. djvavik

    djvavik

    Регистр.:
    27 авг 2013
    Сообщения:
    170
    Симпатии:
    20
    Дописал в конце:

    $data_array=json_decode($data, true);
    echo 'Результат;'
    echo $json->value->content[0]->name;

    Ошибка 500.

    $data_array=json_decode($data, true); - JSON остается без изменений.

    Нашел, нужно еще вставить: var_dump($data_array); Тогда вроде появляется массив
     
    Последнее редактирование: 17 июн 2019
  2. Angelok

    Angelok Создатель

    Регистр.:
    26 июл 2017
    Сообщения:
    33
    Симпатии:
    17

    массив появился еще на этапе $data_array=json_decode($data, true);
    а вот
    var_dump($data_array); это уже вывод его на экран
    вы точно так же могли написать print_r($data_array);
    это тоже вывод на экран только чуть в другом виде чем var_dump.
     
    djvavik нравится это.
  3. djvavik

    djvavik

    Регистр.:
    27 авг 2013
    Сообщения:
    170
    Симпатии:
    20
    Верно. А как теперь достать значения? Так как код Minor выдает ошибку 500.
     
  4. Angelok

    Angelok Создатель

    Регистр.:
    26 июл 2017
    Сообщения:
    33
    Симпатии:
    17
    500 если пытаться обратить к массиву как к объекту или наоборот.

    сделайте так:

    $data_array=json_decode($data, true);
    echo "<pre>";
    print_r($data_array);
    echo "</pre>";

    и скиньте скрин сюда или ссылку дайте где посмотреть.
     
    djvavik нравится это.
  5. djvavik

    djvavik

    Регистр.:
    27 авг 2013
    Сообщения:
    170
    Симпатии:
    20
    Код:
    {"result":"OK","message":null,"redirect":null,"value":{"content":[{"id":54448,"visible":true,"extId":"2464662","compositeId":"13103-23-02-2019-16","name":"Москва, Вернадского, 32","flat":null,"phone":null,"author":"Виктория","authorUsername":"agent@yandex.ru","authorEmail":"agent@yandex.ru","description":"
    Москва, Вернадского, 32
    Поссажирский лифт по полу начинает ржаветь.Решить эту проблему можно если поставить видеонаблюдение в лифтах чтобы поймать того кто это делает и строго наказать.","created":"23 февраля 2019 07:45","deadline":"24 февраля 2019 07:45","changed":"24 февраля 2019 08:00","company":{"id":13103,"inn":"1234567890","name":"ООО \"Рога\"Копыта\"","email":"info@mail.ru","phone":null},"address":{"id":596703,"address":"
    Москва, Вернадского, 32
    ","created":null,"changed":null,"companyId":13103,"districtId":119,"districtDDId":25},"status":"EXPIRED_RETURN_TO_DD","category":{"id":239,"name":"3.14. Ненадлежащее санитарное состояние подъездов и лифтов (нарушение периодичности уборки, наличие мусора и грязи, насекомые, грызуны, запах)","group":"3. Содержание подъездов","categoryId":22,"visible":false,"deadline":24.0,"deadlineGzi":72.0,"canBeDD":true,"workingHours":false,"workingHoursGZI":false},"responses":[{"comment":null,"claimId":54448,"id":98036,"status":"EXPIRED_RETURN_TO_DD","created":null,"author":"admin@admin.ru","answerId":null,"answer":null,"images":[]}],"images":[],"files":[],"initiator":"Житель"}],"totalPages":1,"totalElements":1,"last":true,"number":0,"size":10,"numberOfElements":1,"sort":[{"direction":"DESC","property":"id","ignoreCase":false,"nullHandling":"NATIVE","ascending":false,"descending":true}],"first":true}}
    Array
    (
        [result] => OK
        [message] =>
        [redirect] =>
        [value] => Array
            (
                [content] => Array
                    (
                        [0] => Array
                            (
                                [id] => 54448
                                [visible] => 1
                                [extId] => 2464662
                                [compositeId] => 13103-23-02-2019-16
                                [name] => Москва, Вернадского, 32
                                [flat] =>
                                [phone] =>
                                [author] => Виктория
                                [authorUsername] => agent@yandex.ru
                                [authorEmail] => gent@yandex.ru
                                [description] => Москва, Вернадского, 32
    Поссажирский лифт по полу начинает ржаветьРешить эту проблему можно если поставить видеонаблюдение в лифтах чтобы поймать того кто это делает и строго наказать.
                                [created] => 23 февраля 2019 07:45
                                [deadline] => 24 февраля 2019 07:45
                                [changed] => 24 февраля 2019 08:00
                                [company] => Array
                                    (
                                        [id] => 13103
                                        [inn] => 1234567890
                                        [name] => ООО "Рога "Копыта"
                                        => info@mail.ru
                                        [phone] =>
                                    )
    
                                [address] => Array
                                    (
                                        [id] => 596703
                                        [address] => Москва, Вернадского, 32
                                        [created] =>
                                        [changed] =>
                                        [companyId] => 13103
                                        [districtId] => 119
                                        [districtDDId] => 25
                                    )
    
                                [status] => EXPIRED_RETURN_TO_DD
                                [category] => Array
                                    (
                                        [id] => 239
                                        [name] => 3.14. Ненадлежащее санитарное состояние подъездов и лифтов (нарушение периодичности уборки, наличие мусора и грязи, насекомые, грызуны, запах)
                                        [group] => 3. Содержание подъездов
                                        [categoryId] => 22
                                        [visible] =>
                                        [deadline] => 24
                                        [deadlineGzi] => 72
                                        [canBeDD] => 1
                                        [workingHours] =>
                                        [workingHoursGZI] =>
                                    )
    
                                [responses] => Array
                                    (
                                        [0] => Array
                                            (
                                                [comment] =>
                                                [claimId] => 54448
                                                [id] => 98036
                                                [status] => EXPIRED_RETURN_TO_DD
                                                [created] =>
                                                [author] => admin@admin.ru
                                                [answerId] =>
                                                [answer] =>
                                                [images] => Array
                                                    (
                                                    )
    
                                            )
    
                                    )
    
                                [images] => Array
                                    (
                                    )
    
                                [files] => Array
                                    (
                                    )
    
                                [initiator] => Житель
                            )
    
                    )
    
                [totalPages] => 1
                [totalElements] => 1
                [last] => 1
                [number] => 0
                [size] => 10
                [numberOfElements] => 1
                [sort] => Array
                    (
                        [0] => Array
                            (
                                [direction] => DESC
                                [property] => id
                                [ignoreCase] =>
                                [nullHandling] => NATIVE
                                [ascending] =>
                                [descending] => 1
                            )
    
                    )
    
                [first] => 1
            )
    
    )
     
    Последнее редактирование: 17 июн 2019
  6. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    249
    Симпатии:
    97
    500 потому что
    echo 'Результат;'
    ; надо за кавычку перенести
     
    djvavik нравится это.
  7. Angelok

    Angelok Создатель

    Регистр.:
    26 июл 2017
    Сообщения:
    33
    Симпатии:
    17

    отлично. у вас на выходе массив $data_array
    чтобы получить поле
    Код:
    Array
    (
      [result] => OK
    
    делаете
    Код:
    echo $data_array['result'];
    
    чтобы получить
    Код:
    Array
    (
               [value] => Array
                                    (
                                     [content] => Array
                                                   (
                                                  [0] => Array
                                                            (
                                                           [id] => 54448
    
    делаете
    Код:
    echo $data_array['value']['content'][0]['id'];
    
     
    djvavik нравится это.
  8. djvavik

    djvavik

    Регистр.:
    27 авг 2013
    Сообщения:
    170
    Симпатии:
    20
    С выводом вроде разобрался, спасибо))))) Осталось непонятным:
    1. Результат вывода данных почему то пишется внизу всего кода, т.е. идет весь JSON, а снизу него уже результат нужных мне данных, как убрать код JSON, что бы был чистый результат?
    2. Как между данными вставить знак ";" без пробелов.
    3. Получиться должно вот так: Результат;Москва, Вернадского, 32;Виктория;agent@yandex.ru
    4. Как в конце все записать в фаил Результат.txt?

    Добавил echo 'Результат'; - все получилось! Спасибо!

    P.S. Ребят, я Вас обожаю!!! Спасибо за помощь!
     
    Последнее редактирование: 19 июн 2019
  9. Angelok

    Angelok Создатель

    Регистр.:
    26 июл 2017
    Сообщения:
    33
    Симпатии:
    17

    1. где то выше есть echo $data; - вывод изначального Ясона = это надо убрать
    2. вариантов куча - разбить на элементы массива expplode ";" и сборка назад implode "; "
    но я бы поленился и тупо сделал бы автозамену str_trplace(";", "; ", $переменнаядляподмены )
    4.

    $fp = fopen('Результат.txt', 'w');
    fwrite($fp, 'строка 1');
    fwrite($fp, 'строка 2');
    fclose($fp);
     
  10. djvavik

    djvavik

    Регистр.:
    27 авг 2013
    Сообщения:
    170
    Симпатии:
    20
    1. Конечный код, не вижу данного значения:

    Код:
    $data=request('https://eds.mosreg.ru/api/claims?status=EXPIRED_RETURN_TO_DD');
    echo $data;
    $data_array=json_decode($data, true);
    echo "<pre>";
    print_r($data_array);
    echo "</pre>";
    echo 'Результат';
    echo $data_array['value']['content'][0]['name'];
    echo $data_array['value']['content'][0]['author'];
    echo $data_array['value']['content'][0]['description'];
    echo $data_array['value']['content'][0]['authorEmail'];
    echo $data_array['value']['content'][0]['phone'];
    echo $data_array['value']['content'][0]['category']['name'];
    2. Заменять нечего. В результате значения пишутся в одну строку, слитно между значениями. Т.е. Нужно, как то вставить. Или имеет ввиду вставить между строками: echo $data_array['value']['content'][0][company]['name']; и какой то код написать, что бы он менял данный результат на ";"? Как правильно прописать?

    4. fwrite($fp, 'строка 1');
    fwrite($fp, 'строка 2'); -
    не совсем понятно, что за строки?
     
    Последнее редактирование: 19 июн 2019
Статус темы:
Закрыта.