まったりWEB日誌訪問ありがとうございます。お気に入りやシェア歓迎(^^)

PHP

一時間に一回だけAPIを実行するPHPのオブジェクトファイル

あるユーザーが公開しているプログラミングを参考にして
オブジェクト化してみた。
参考にしたサイトのリンクは下記になります。
phpでapiを切りの良い時刻までキャッシュする

尚、動作環境はPHP5.6以上になります、と言いつつ
動作テストは行っていないので、もしかしたらエラーで動かないかも?
動作内容はJSONファイルの更新時間( hour )と
サーバの 時間 ( hour ) を比べ差異があれば
APIを呼び出し結果をJSONファイルとして上書き保存します。
そのため、一時間に一回だけ更新処理が走ります。
(※CRONで設定していれば)

結果がJSONで返ってこない場合などは可変して頂いて構いません。
もともと自分の案でもないので…。

PHPファイルのダウンロードはこちらから
https://zip358.com/tool/timeKeeper/timeKeeper.zip

ソースコードはこちらになります(* ̄(エ) ̄*)

<?php
class timeKeeper{

    public static $json_filename = "abc.json";
    public static $json_api_url = "https://example.com/api/?v=1.333";

    public static function judge(){
        $server_timestamp = time();
        $server_time = date('Y/m/d H',$server_timestamp);
        $json_timestamp = filemtime(self::$json_filename);
        $json_time = date('Y/m/d H',$json_timestamp);
        return $server_time === $json_time ? true : false;
    }

    public static function api_run($opts=null){
        if(is_null($opts))return false;
        $context = stream_context_create($opts);
        $json = file_get_contents(self::$json_api_url, false, $context);
        $fp = fopen(self::$json_filename, "w");
        fwrite($fp,$json);
        fclose($fp);
        return self::json_load();
    }

    public static function json_load(){
        $json = file_get_contents(self::$json_filename); 
        return json_decode($json, true);
    }

    public static function check(){
        if(file_exists(self::$json_filename)){
            return self::judge();
        }
        return false;
    }
}

///使用例
if(timeKeeper::check()){
   $json = timeKeeper::json_load();
}else{
    $opts = array(
        "http"=>array(
        "method" => "POST",
        "header" => "User-Agent: php"
        )
    );
    $json = timeKeeper::api_run($opts);
}

まったりWEB日誌動画というYOUTUBEチャンネルがあります。

PHP言語の入門解説や旅ログなどなどいろいろな活動をしていきます。
ご視聴及びチャンネル登録お願いします🙏

➡ YOUTUBEチャンネル登録🙏
➡ PHPレッスン動画手引き

関連記事

  1. 雑記

    映画、SCOOP!を観てきましので感想を残しときます。 #映画レビュー

    若干、言葉に品なし(最初からエロい?)だけど映像や画が勝っているから…

  2. 雑記

    真鍋 大度さん(ライゾマティクス)は凄いなと改めて思う。

    これ、Perfumeのグローバルサイトのスクリーンショットなんですけ…

  3. 雑記

    続けることに意味がある。

    続けることに意味があるのか?どうかはわからないけれど、続けることで…

  4. 雑記

    みんなが大好きなマリオが何やら酷評されている。

    みんなが大好きなマリオが何やら酷評されている。12月15日にリリー…

  5. 雑記

    日々淡々と

    日々淡々と生きてます。この画像を作っている時に、小学生の時に切り…

  6. 雑記

    過去に囚われる人と過去にとらわれない人。

    過去に囚われる人と過去にとらわれない人がいたら過去にとらわれない人…

プロフィール



taokaと申します。

まったりWEB日誌とまったり映画ログを
更新している中の人です😃

趣味は映画鑑賞とブログ書きです。


ブックマークやシェアして頂けると励みになります。

どうぞよろしくお願い致します。

Twitter でフォロー

PAGE TOP