Как кэшировать URL запроса JSON - PullRequest
0 голосов
/ 14 мая 2019

Попытка кешировать URL запроса без надежды

Вот мой запрос JSON. Я хочу кэшировать результат JSON в течение 1 часа на стороне сервера.

Хранить мои данные JSON в файле .json на моем PHP-сервере

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

<?php
    $json=file_get_contents("http://feeds.mse.mk/service/FreeMSEFeeds.svc/ticker/JSON/8BA941D0-D6E6-44BD-8D8B-47FDB7A563FA");
    $data =  json_decode($json);

    if (count($data->GetTickerJSONResult)) {
        // Open the table
        echo "<table>";

        // Cycle through the array
        foreach ($data->GetTickerJSONResult as $idx => $GetTickerJSONResult) {

            // Output a row
    $avgPerChangeValue = floatval($GetTickerJSONResult->AvgPerChange);
    $symbolName = $GetTickerJSONResult->Symbol ;

    $hrefLink = "";

    switch ($symbolName) {
        case "ALK":
            $hrefLink = "https://www.mse.mk/mk/issuer/alkaloid-ad-skopje";
            break;
        case "GRNT":
             $hrefLink = "https://www.mse.mk/mk/issuer/granit-ad-skopje"  ;
            break;
        case "KMB":
            $hrefLink = "https://www.mse.mk/mk/issuer/komercijalna-banka-ad-skopje"  ;
            break;
        case "MPT":
            $hrefLink = "https://www.mse.mk/mk/issuer/makpetrol-ad-skopje"  ;
            break;
        case "MTUR":
            $hrefLink = "https://www.mse.mk/mk/issuer/makedonijaturist-ad-skopje"  ;
            break;
        case "SBT":
            $hrefLink = "https://www.mse.mk/mk/issuer/stopanska-banka-ad-bitola"  ;
            break;
        case "TEL":
            $hrefLink = "https://www.mse.mk/mk/issuer/makedonski-telekom-ad-%E2%80%93-skopje"  ;
            break;
        case "TNB":
            $hrefLink = "https://www.mse.mk/mk/issuer/nlb-banka-ad-skopje"  ;
            break;
        case "TTK":
            $hrefLink = "https://www.mse.mk/mk/issuer/ttk-banka-ad-skopje"  ;
            break;
        default:
            echo "Does not supported symbol";
    }

    if ($avgPerChangeValue > 0 ) {

            echo "<tr>" ;
            echo "<td class='bold-green'>" . "<a href='" . $hrefLink . "'>" . $GetTickerJSONResult->Symbol . "</a></td>";
            echo "<td class='bold-green'>$GetTickerJSONResult->AvgPrice</td>";
            echo "<td class='bold-green'>$GetTickerJSONResult->AvgPerChange</td>";
            echo "</tr>";
    } else if ($avgPerChangeValue < 0 ){
            echo "<td class='bold-red'>" . "<a href='" . $hrefLink . "'>" . $GetTickerJSONResult->Symbol . "</a></td>";
            echo "<td class='bold-red'>$GetTickerJSONResult->AvgPrice</td>";
            echo "<td class='bold-red'>$GetTickerJSONResult->AvgPerChange</td>";
            echo "</tr>";
    } else {
        echo "<td class='bold-blue'>" . "<a href='" . $hrefLink . "'>" . $GetTickerJSONResult->Symbol . "</a></td>";
        echo "<td class='bold-blue'>$GetTickerJSONResult->AvgPrice</td>";
        echo "<td class='bold-blue'>$GetTickerJSONResult->AvgPerChange</td>";
        echo "</tr>";
    }


        }

        // Close the table
        echo "</table>";
    }

    echo "<style type='text/css'> td.bold-red { color: red; font-weight: bold; } td.bold-green { color: green; font-weight: bold; }  td.bold-blue { color: blue; font-weight: bold; } </style>"

?>

Пожалуйста, предоставьте мне рабочее решение для моего кода

1 Ответ

0 голосов
/ 14 мая 2019

попробуйте это, сохраните все json в сеансе и после использования другую страницу

session_start(); 
$json=file_get_contents("http://feeds.mse.mk/service/FreeMSEFeeds.svc/ticker/JSON/8BA941D0-D6E6-44BD-8D8B-47FDB7A563FA");
$_SESSION['data']=$json;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...