Как автоматически обновлять данные из json api с помощью php?

Я экспериментирую с JSON Api с PHP. Я использую бесплатный API-интерфейс ценового тикера биткойнов от Blockchain. Он работает, но для обновления данных мне нужно обновить страницу. Возможно ли автоматическое обновление данных без обновления страницы? Это то, что у меня сейчас (работает)

<?php

$json = file_get_contents('https://blockchain.info/ticker');
$data = json_decode($json,true);

$priceUSD = $data['USD']['last'];

echo $priceUSD;

Заранее спасибо, хорошего дня!

С уважением, король,

L Kenselaar

Вы используете ajax для обращения к веб-сервису, который вызывает этот PHP-код? Или вы просто загружаете это прямо в файл HTML php? Если HTML, вы можете посмотреть на выполнение мета-обновления: w3schools.com/tags/att_meta_http_equiv.asp ИЛИ, если вы используете ajax с JS, вы можете поместить свою функцию ajax внутри функции, которая вызывается интервалом JS, который запускается каждые n-е секунды, чтобы перейти и получить новую цену и т. д. stackoverflow.com/questions/4930439/…

Woodrow 27.03.2018 22:38

пойти с socketio

sumit 27.03.2018 22:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
1 880
2

Ответы 2

Чтобы обновить данные в вашем массиве PHP, вам нужно будет запустить новый HTTP-запрос к вашему API из PHP-кода. Не обновляя страницу, на которой отображается ваш PHP, вам нужно будет держать соединение открытым (которое будет длиться только до тех пор, пока ваш php.ini max_execution_time равен, а PHP не может редактировать данные, которые он уже отправил, поэтому самое близкое, что вы могли бы получить это новостная лента, которая добавляет новые строки внизу)

Если все, что вам нужно, это самообновляющийся веб-сайт, вам придется использовать JavaScript (который может работать бесконечно и регулярно запрашивать новые данные из вашего PHP-сервера). Ищите AJAX или XMLHttpRequests в целом.

Если вы должны придерживаться PHP, вы можете запустить независимый процесс в фоновом режиме (проверьте nohup или disown в Linux / Unix).

Ваш сценарий будет делать что-то вроде:

<?php

while(true){
    try {
        $json = file_get_contents('https://blockchain.info/ticker');
        $data = json_decode($json,true);

        $priceUSD = $data['USD']['last'];

        // Do the internal handling
        // update your database, etc
    }
    catch (Exception $e) {
        echo 'Error: ' .  $e->getMessage() . "\n";
    }

    // wait for 5 seconds
    sleep(5);
}

Имейте в виду, что код PHP выполняется в блокирующем потоке, а это означает, что этот процесс должен выполняться отдельно от вашего веб-сервера.

Однако, если вы хотите выполнять обе задачи одновременно (получение и обслуживание запросов), вам придется рассмотреть альтернативы, такие как NodeJS.

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