Goutte Crawler конвертирует JSON


person Przemek    schedule 31.05.2017    source источник
comment
он говорит, что json_decode ожидает строку и вместо этого получает объект   -  person Przemek    schedule 31.05.2017
comment
Объект DomCrawler, по-видимому, не имеет никакого метода для вывода полных данных ответа. Если бы вы использовали Guzzle, вы могли бы сделать это print_r(json_decode((string) $crawler->getBody()));.   -  person Sandeesh    schedule 31.05.2017
comment
так как я могу сделать ту же функцию, используя guzzle? У меня он установлен, но я не мог понять   -  person Przemek    schedule 31.05.2017
comment
Например, stackoverflow.com/a/44266346/5892849 из вашего другого вопроса. Просто передайте результат в json_decode. Вы должны сначала попробовать прочитать некоторые учебные пособия, чтобы понять, как работают парсеры, и прочитать документацию Guzzle. Похоже, вы пытаетесь достичь слишком многого, даже не зная основ, это видно из ваших предыдущих вопросов. Мое предложение состояло бы в том, чтобы просмотреть документацию Guzzle. Затем используйте компонент DomCrawler Symfony, чтобы очистить html. Вы можете напрямую преобразовать ответы json в массив или объект, используя json_decode.   -  person Sandeesh    schedule 31.05.2017


Ответы (1)


file_get_contents() помогает с такими простыми вещами.

function odeon(){
    $data = file_get_contents('https://api.cinelist.co.uk/get/times/cinema/10565');

    $data = json_decode($data);
    return view()->make('odeon')->with(['listings' => $data->listings]);

}

а затем в своем лезвии просто сделайте что-то вроде этого:

@foreach($listings as $listing)
    <strong>{{$listing->title}} </strong>: 
    @foreach($listing->times as $time)
        <p>{{$time}}</p>
    @endforeach
@endforeach
person larsemil    schedule 31.05.2017
comment
выглядит все хорошо, однако мне нужно вернуть данные в шаблон блейда, чтобы я мог стилизовать их в div и т. д. - person Przemek; 31.05.2017
comment
Ну это не то, что вы просили. Я обновлю свой пример с дополнительным контекстом. - person larsemil; 31.05.2017
comment
функция odeon не возвращает вид, так как я могу сказать ей использовать лезвие? - person Przemek; 31.05.2017
comment
Ваш вопрос был не об изучении laravel. Это было как преобразовать json в строку. Я могу обновить свой пример, но для получения лучших ответов, пожалуйста, спросите, что вам нужно знать, а не только его часть. - person larsemil; 01.06.2017