Извлечение пары значений ключей из API-ответа stackru для сохранения их в mysql с использованием php

Как извлечь пару значений ключа из ответа API стека и потока с помощью php?

ключи это имя и количество

ссылка для получения ответа приведена ниже

Ссылка API запроса stackru

ответ как

{"элементы":[{"has_synonyms": истинные "is_moderator_only": ложные,"is_required": ложь, "Count":835623,"название": "Java"},{"has_synonyms": истинные "is_moderator_only" ложь, "is_required" ложь "считать":826692,"название": "JavaScript"},{"has_synonyms": правда, "is_moderator_only" ложь "is_required": ложные, "подсчет":780233," назвать ":" C#"},{"has_synonyms": истинные" is_moderator_only ": ложные," is_required ": ложный" Count":733762," название ":" PHP "}, {" has_synonyms ": правда" is_moderator_only "ложь" is_required "ложь" счетчик ":656491," название ":" андроид "}, {" has_synonyms "ложь" is_moderator_only "ложь" is_required "ложь" счетчик ":600666,"название": "JQuery"},{"has_synonyms": истинный "is_moderator_only": ложный,"is_required": ложный, "подсчет":411780,"название": "Python"},{"has_synonyms": истинный, "is_moderator_only" ложь "is_required" ложь "счетчик":402876,"название": "HTML"}, {"has_synonyms": истинный "is_moderator_only": ложный,"is_required": ложный, "подсчет":361469,"имя": "C++"},{"has_synonyms": правда, "is_moderator_only": ложные "is_required": ложь, "подсчет":324702,"имя": "ИОС"}, {"has_synon YMS ": правда," is_moderator_only "ложь" is_required "ложь" счетчик ":314826," название ":" MySQL "}, {" has_synonyms ": правда," is_moderator_only "ложь" is_required "ложь, "считать":296359,"название": "CSS"}, {"has_synonyms": правда, "is_moderator_only" ложь "is_required": ложные, "подсчет":271375,"название": "SQL"}, {"has_synonyms": истинные "is_moderator_only": ложные, "is_required" ложь "счетчик":253038,"название":"asp.net"},{"has_synonyms": правда, "is_moderator_only" ложь" is_required "ложь" счетчик ":224602," название ":" цель-с "}, {" has_synonyms ": правда," is_moderator_only "ложь" is_required ": ложные," подсчет ":207451," название":}, {"has_synonyms ""чистый".: правда," is_moderator_only ": ложные" is_required ": ложь," подсчет ":202666," имя ":"iphone"},{"has_synonyms": правда," is_moderator_only "ложь" is_required "ложь" счетчик ":200238," название ":" рубин-на-рельсы "}, {" has_synonyms ": ложный," is_moderator_only ": ложный," is_required ": ложный," подсчет ":176868," название ":" с "}, {" has_synonyms ": ложный," is_moderator_only ": ложный," is_required ": ложный," подсчет ":130813," название ":" рубин "}, {" has_synonyms ":правда," is_moderator_only "ложь" is_required "ложь" счетчик ":129764," название ":" массивы "}, {" has_synonyms ": правда," is_moderator_only "ложь" is_required "ложь" счетчик ":127562,"название": "SQL-сервер"}, {"has_synonyms": правда, "is_moderator_only" ложь "is_required" ложь "счетчик":116079,"название": "Ajax"},{"has_synonyms": правда, "is_moderator_only" ложь "is_required" ложь "счетчик":114163,"название": "регулярное выражение"}, {"has_synonyms": ложный, "is_moderator_only": ложный, "is_required" ложь" рассчитывать ":112127," название ":" XML "}, {" has_synonyms ": правда," is_moderator_only "ложь" is_required ": ложные," подсчет ":111066," название ":" JSON "}, {" has_synonyms ": истинный" is_moderator_only "ложь" is_required "ложь" счетчик ":107333," название ":"asp.net-MVC "}, {" has_synonyms ": ложный," is_moderator_only "ложь" is_required "ложь" счетчик ":99944," название ":" МОФ "}, {" has_synonyms "ложь" is_moderator_only "ложь" is_required ": ложные," подсчет ":98195," название ":" Linux"},{"has_synonyms"ложь" is_moderator_only "ложь" is_required "ложь" счетчик ":93114," название ":" Джанго "}],"has_more": правда,"quota_max":300,"quota_remaining":228}

Я сделал это, но не получил ответа в php

<?php

$url = 'https://api.stackexchange.com/2.2/tags?order=desc&sort=popular&site=stackru';

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json'
));

$result = curl_exec($cURL);

curl_close($cURL);



print_r($result);

?>

Я также сделал это с помощью javascript там, я получаю ответ, но нет никакого способа, которым javascript может взаимодействовать с базой данных. Я пытался отправить его в php-файл оттуда, но я не могу получить пару ключ-значение из запроса.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
    type:"GET",
    url:"https://api.stackexchange.com/2.2/tags?order=desc&sort=popular&site=stackru",
    success:function(data){

        $.ajax({
                type:"POST",
                url:"savetodb.php",
                data:"data="+JSON.stringify(data),
                success:function(daa){
                alert(daa)  }
                })
    }
})
</script>

Я также попробовал функцию php file_get_contents([URL])

код следующий

<?php
$url = "https://api.stackexchange.com/2.2/tags?order=desc&sort=popular&site=stackru";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
print_r($json_data);

?>

Я получаю ошибку

1.file_get_contents(): php_network_getaddresses: getaddrinfo не удалось: такой хост не известен

2.file_get_contents ( https://api.stackexchange.com/2.2/tags?order=desc&sort=popular&site=stackru): не удалось открыть поток: php_network_getaddresses: getaddrinfo сбой: такой хост не известен

1 ответ

Решение

Как указано в документации по Stack Exchange API,

Все ответы API являются JSON

поэтому вы должны искать синтаксический анализ JSON на языке программирования, который вам нужно использовать.

Для части DNS я думаю, что вы должны проверить этот ответ на serverfault; сосредоточиться на первых двух вещах:

[ИКС]

Первое, что нужно проверить, это проверить ваш php.ini и убедиться, что эти атрибуты включены

allow_url_fopen = On

allow_url_include = On

[ИКС]

Создайте файл phpinfo() [на всякий случай phpinfofile.com] и проверьте, включены ли эти расширения

OpenSSL

Разъем

Специально для пользователей Windows, использующих xammp или wammp, отключив расширение PHP_OpenSSL, вы не сможете подключиться через @fsockopen

Другие вопросы по тегам