Есть вот такой json из API Википедии: https://ru.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Apple
Как на php вывести текст из поля extract, где начинается краткий текст?
Я пробовал вот так, но ничего не работает:
$url = file_get_contents('https://ru.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Apple');
$yummy = json_decode($url, true);
echo $yummy['extract'];
Перед тем, как вывести переменную после парсинга данных, необходимо сделать её dump
как правило, и посмотрев структуру вложенности. Если Вы не хотите это делать или по просту не умеете, но необходимо решить задачу, то воспользуйтесь онлайн преобразованием json в объект. Как мы видим на фотографии ниже, переменная extract находится в query->pages->39726->extract. Поэтому чтобы вывести данное значение Вам необходимо сделать так:
echo $yummy['query']['pages']['39726']['extract'];
Только учитывайте тот факт, что 39726 будет меняться то и дело и надо как-то динамически выводить). Это как домашнее задание Вам
Разрабатывая программы на PHP (и других языках программирования), часто приходится заглядывать в значения переменных, когда что-то идёт не так (ничего не работает). Такое заглядывание в код во время выполнения называется отладкой (или дебагом).
Самый простой способ выяснить что пошло не так в вашем случае, это посмотреть что находится в массиве к которому вы обращаетесь. Сделать это поможет функция var_dump. Просто напишите перед echo $yummy['extract'];
var_dump($yummy);
посмотрите на вывод. О! Кажется вы обращаетесь не по тому ключу!
Это просто. Но не всегда удобно, когда ошибка не так очевидна. Для более серьёзных случаев удобно использовать возможности IDE для дебага. Вспомните об этом через некоторое время, когда заметите что var_dump
уже не достаточно удобен.
$url = file_get_contents('https://ru.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Apple');
$yummy = json_decode($url, true);
$datas=$yummy['query']['pages'];
foreach($datas as $data){
$extract = $data['extract'];
}
echo $extract;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как добавить пагинацию в эту функцию HTML карты сайт?
Почему класс не срабатывает, ошибок никаких не выдаёт?
Представьте себе доску объявлений, где вы сначала выбираете категорию, а потом в зависимости от выбранной категории, вам предлагают заполнить...
есть в папке public_html файл с именем adminphp нужно защитить его логин:пароль