【Webアプリ】ツイッター某ハッシュタグ生成・検索

f:id:utalab:20200515171302p:plain

毎朝お世話になっているハッシュタグ。毎朝ハッシュタグを考えている人はどれだけいるでしょう?少々複雑なのでプログラムで生成しているかもしれません。

というわけで、ハッシュタグを生成するプログラムを作ってみました。

他の言語では作ったことがあるのですが、PHPでは初めてです。

ハッシュタグの生成関数を作りました

以下が関数です。

// $flg "":all "1":文字列 "2":絵文字
function makeOhasenTag($chkDate, $flg){
    // 日付形式のパターン(YYYY-M-DまたはYYYY/M/D)
    $pattern1 = preg_match("/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/", $chkDate);
    $pattern2 = preg_match("#^[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}$#", $chkDate);

    // 年月日を配列にする
    if($pattern1){
        $dateAry = explode("-", $chkDate);
    }
    if($pattern2){
        $dateAry = explode("/", $chkDate);
    }

    if($pattern1 || $pattern2){
        try{
            // 日付生成
            $dtObj = new DateTime($chkDate);
        }catch(Exception $e){
            return "";
        }
    }

    // 日付が生成されていない
    if(!isset($dtObj)){
        return "";
    }

    $month = array("j","f","m","a","m","j","j","a","s","o","n","d");
    $week = array("n","g","k","s","m","k","d");
    $emoji = array("🍨","🌙","🔥","🌊","🌴","🍺","🍩");

    // 曜日の番号を取得
    $w = (int)$dtObj->format("w");

    // おは戦用変数
    $oha_rei    =   $dtObj->format("Y") - 2018; // 令和年
    $oha_tuki   =   $dtObj->format("m");        // 月
    $oha_niti   =   $dtObj->format("d");        // 日
    $oha_month  =   $month[(int)$oha_tuki-1];   // 月(英語)
    $oha_week   =   $week[$w];                  // 週(英語)
    $oha_emoji  =   $emoji[$w];                 // 絵文字

    if($flg=="1"){
        return "おは戦".
            $oha_rei .
            $oha_tuki .
            $oha_niti .
            $oha_month .
            $oha_week;
    }
    if($flg=="2"){
        return $oha_emoji;
    }

    return "おは戦".
        $oha_rei .
        $oha_tuki .
        $oha_niti .
        $oha_month .
        $oha_week .
        $oha_emoji;
}

こちらでいろいろ確認できます。

よろしければ、ご利用ください。