<?php
$response = file_get_contents("https://someurl.website/someJSON.json"); // Получаем JSON
$array = json_decode($response, true); // Парcим JSON в массив
print_r($array); // Выводим содержимое массива
file_get_contents
запросы в PHP можно делать еще через curl
:const getUrl = (id, range, key) =>
`https://sheets.googleapis.com/v4/spreadsheets/${id}/values/${range}?key=${key}`;
const arrToCollect = (array) =>
array
.slice(1)
.map(
(_, ri) =>
array[0].reduce((ah, h, ci) => ((ah[h] = array[ri + 1][ci]), ah), {}),
[]
);
(async () => {
const id = '1xTXNtfabGIiFR9PdOQonmnlSPbhGcj_2Geo1v0cq4Gw';
const range = 'Sheet';
// Limited to the use of the contributor.pw/* domain
const key = 'AIzaSyCt4F7Z8cVDqivNcO3slXewThZurJ4gJNY';
let res = {};
try {
res = await fetch(getUrl(id, range, key));
const data = JSON.parse(await res.text());
console.log(data.values);
console.log(arrToCollect(data.values));
} catch (err) {
console.error(err);
}
})();
getUrl
- функция для формирования адреса запроса к API.arrToCollect
- функция преобразования двухмерного массива в массив объектов. Я ее просто копирую, поэтому она такая плотная. Подробно https://github.com/contributorpw/google-apps-scrip... К сожалению, из-за блокировки я не могу прислать вам прямую ссылку на сайт. См. (если не лень) https://apps-script-snippets.contributor(dot)pw/snippets/common_js/2darray_to_collection/var result = [];
var request = new XMLHttpRequest();
request.responseType = "json";
request.open("GET", "https://spreadsheets.google.com/feeds/cells/1371WG6WudEXfukqMMakOTJSK_P33cOyXOG69LoN8tyg/1/public/full?alt=json");
request.onload = (req) => {
let gscell = req.srcElement.response.feed.entry.map( (e) => e.gs$cell);
let col_row = parseInt(gscell[gscell.length-1].row)+1;
let i = 1;
while (i < col_row) {
let res_row = gscell.filter( e => parseInt(e.row) == i);
this_row = {};
this_row.id = ( res_row.filter( e => parseInt(e.col) == 1).length) ? res_row.filter( e => parseInt(e.col) == 1)[0].inputValue : null;
this_row.english = ( res_row.filter( e => parseInt(e.col) == 2).length) ? res_row.filter( e => parseInt(e.col) == 2)[0].inputValue : null;
this_row.translation = ( res_row.filter( e => parseInt(e.col) == 3).length) ? res_row.filter( e => parseInt(e.col) == 3)[0].inputValue : null;
this_row.video = ( res_row.filter( e => parseInt(e.col) == 4).length) ? res_row.filter( e => parseInt(e.col) == 4)[0].inputValue : null;
this_row.video_format = ( res_row.filter( e => parseInt(e.col) == 5).length) ? res_row.filter( e => parseInt(e.col) == 5)[0].inputValue : null;
result.push(this_row);
i++;
}
console.log(result);
}
request.send();
let hasOwnProperty = Object.prototype.hasOwnProperty;
if (hasOwn(item, 'hint')) {
if (hasOwn(item.hint, 'link')) {
link = item.hint.link;
}
}
setTimeout(function(){ctx.clearRect(0,0,canvas.width,canvas.height), 5000})
// 5000 внутри функции, а должен быть как параметр, вот так
// нужно вот так
setTimeout(function(){ctx.clearRect(0,0,canvas.width,canvas.height); }, 5000)
submit.addEventListener("click", function(){});
замени на стрелочную функцию ()=>{}
, и тогда контекст останется. Или можно использовать метод bind для указания контекста, иначе он будет браться по умолчанию, в данном случае это HTMLButtonElementvar SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (SpeechRecognition) {
var recognition = new SpeechRecognition();
// ...
} else {
// не поддерживает
}
Правильно ли я понял, SpeechRecognition это функция-конструктор? И в переменную recognition мы помещаем экземпляр класса SpeechRecognition?да
Правильно ли я понял, SpeechRecognition это функция-конструктор?
Как можно проверить при помощи , js узнать, есть ли у браузера этот ?класс? ? объект? Этот API, в общем...
var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
#...
paragraphs = [ globals()[f"para{i}"] for i in range(1,11) ]
print('\n'.join(paragraphs))