Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 15.07.2013
Сообщений: 13

Кэшировать данные полученные из API

23.09.2015, 12:28. Показов 1409. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Делаю следующий функционал. На сайте выводятся трансляции (twich и т.д.) через ихний API.
Поскольку их много, то сказали что нужно это все дело кэшировать.
Пример получения данных ниже.
PHP
1
2
3
4
5
6
$cybergameCont = file_get_contents('http://api.cybergame.tv/w/streams2.php?channel='.$cybergame );
$xjsonCybergame = json_decode($cybergameCont);
$body = file_get_contents('http://goodgame.ru/api/getchannelstatus?id='.$goodgame );
$xml = new  SimpleXMLElement($body);
$url = file_get_contents("https://api.twitch.tv/******/streams/".$streams);
$json_decoded = json_decode($url);
Как это лучше всего будет сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.09.2015, 12:28
Ответы с готовыми решениями:

По данному коду написать PHP-обработчик выводящий полученные данные
По данному коду написать PHP-обработчик выводящий полученные данные. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01...

Записать в RAGrid (RadAsm) данные, полученные из базы данных при помощи MySql API
Решил одну проблему, появилась новая. База данных MySql. При помощи Mysql API, пишу в базу, читаю из базы. А вот записать, RaGrid...

Не выводит полученные данные в C++
Получаю вместо вычесленного Sum 0 #include <iostream> #include <math.h> using namespace std; int main() { int n, Sum(0),...

4
Заблокирован
23.09.2015, 13:02
Например в ФС вебсервера
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$cybergameCont = file_get_contents('http://api.cybergame.tv/w/streams2.php?channel='.$cybergame );
$xjsonCybergame = json_decode($cybergameCont);
$body = file_get_contents('http://goodgame.ru/api/getchannelstatus?id='.$goodgame );
$xml = new  SimpleXMLElement($body);
$url = file_get_contents("https://api.twitch.tv/******/streams/".$streams);
$json_decoded = json_decode($url);
 
//сохранение кеша
file_put_contents(__DIR__. '/body.txt',$body);
 
$data=var_export($xjsonCybergame, true);
file_put_contents(__DIR__. '/xjsonCybergame.php',"<?php\nreturn $data;\n");
 
$data=var_export($json_decoded, true);
file_put_contents(__DIR__. '/json_decoded.php',"<?php\nreturn $data;\n");
 
//получение из кеша
$json_decoded=require __DIR__. '/json_decoded.php';
$xjsonCybergame=  require __DIR__. '/xjsonCybergame.php';
$xml=new  SimpleXMLElement(file_get_contents(__DIR__. '/body.txt'));
1
0 / 0 / 0
Регистрация: 15.07.2013
Сообщений: 13
23.09.2015, 13:13  [ТС]
Понятно, спасибо. Еще вопрос, я так понимаю что файлы body.txt, xjsonCybergame.php и json_decoded.php должны меняться в зависимости от пути http://goodgame.ru/api/getchannelstatus?id='.$goodgame. Так? И как установить время жизни этих файлов?
0
Заблокирован
23.09.2015, 13:21
Цитата Сообщение от nixxel Посмотреть сообщение
файлы body.txt, xjsonCybergame.php и json_decoded.php должны меняться в зависимости от пути
это уж как вам удобнее. Я привел простейший пример кеширования в файлах массивов. Быстрее var_export - requre ничего не работает. Время жизни можно задать в программе и проверять дату создания файла. А еще проще по системному времени ориентироваться: стукнуло 2часа - обновляем кеш. А если сильно усложнять - тогда лучше в базе хранить. там любые проверки проще делать
1
0 / 0 / 0
Регистрация: 15.07.2013
Сообщений: 13
23.09.2015, 22:20  [ТС]
Вас, понял, спасибо. Буду пробовать.

Добавлено через 5 часов 22 минуты
Появилась проблема.
При добавлении/создания кэш-файла на странице выводиться только 1 такой стрим и сразу работа php прекращается. При обновлении еще один и так далее. Не могу понять в чем проблема.. Движок wp, все делаю внутри цикла loop.
Что может быть не так?
Проверяю следующим кодом
PHP
1
2
3
4
5
6
7
8
9
10
11
if( !file_exists(__DIR__.'/chace-cybergame-'. $post->ID .'.php') ) {
    $cybergameCont = file_get_contents('http://api.cybergame.tv/w/streams2.php?channel='.$cybergame );
    $data = var_export($cybergameCont, true);
    file_put_contents(__DIR__.'/chace-cybergame-'. $post->ID .'.php', $data);
    $json_decode = file_get_contents( __DIR__.'/chace-cybergame-'. $post->ID .'.php');
    $xjsonCybergame = json_decode($json_decode);    
}
else {
    $json_decode = file_get_contents( __DIR__.'/chace-cybergame-'. $post->ID .'.php');
    $xjsonCybergame = json_decode($json_decode);
}
Добавлено через 3 часа 23 минуты
Все в норме, нужно было включить все ошибки и вылизать код
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2015, 22:20
Помогаю со студенческими работами здесь

Полученные Winsock данные
Ну в общем ситуация такая: состряпал код для тестов команд. Связь через Winsock по TCp. Все коннектится и работает, но есть одно но. В...

Пропадают данные полученные от сервера
Добрый день. Такого рода проблема, не могу понять куда пропадает сообщение &quot;Макс&quot; как показано на фото на сервере оно обрабатывается и...

Разместить полученные данные по ячейкам
Всем Доброго времени суток! В VBA я не силен, очень прошу помочь в доработке макроса. Проблема такая, есть текстовой файл, в нем...

Сохранит данные, полученные из HttpGet в БД
Ребят подскажите что не так, я получаю 4 переменные в httpget и после это нужно сохранить полученные данные в БД. как это сделать? Код...

Добавление в таблицу полученные данные
Привет, у меня есть функция которая получает результат из обработчика setInterval(function(){ $.ajax({ type:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru