0

コードAPIのURLがあり、json形式で出力されます。json の結果または別のソリューションをキャッシュする必要があります。私のページは新しいユーザーにアクセスしたときにAPIを再度呼び出し、ページを開く速度に問題があるためです。どうすれば作れますか?

私のコード:

<?php
$jsonurl     = 'http://api.site.com/deal/browse.html?apiKey=VN43U6&p=2';
$json        = file_get_contents($jsonurl, 0, null, null);
$json_output = json_decode($json);
foreach ($json_output->deals as $objects) {
    $title = $objects->title;
    echo '<h5 class="coupon-title">' . $title . '</h5>';
}
?>
4

2 に答える 2

0

ファイルにキャッシュするだけです:

$cache_json='yourfilename.json';
if(!is_file(cache_json)){
    $json = file_get_contents($jsonurl, 0, null, null);
    file_put_contents($cache_json,$json);
}
else{
    $json = file_get_contents($cache_json);
}
$json_output = json_decode($json);

この例では、キャッシュは無限です。cron タスクでキャッシュ ファイルを削除するか、php 関数 filemtime でファイル作成のタイムスタンプを確認して、キャッシュの時間制限を設定できます。キー、値(json)、タイムアウトの3つのフィールドを持つテーブルを使用して、DBにもキャッシュできます

于 2017-01-06T10:22:27.047 に答える