【PHP】桁数を統一できるカウンタ。注文番号などに使う!

PHPでDBを使わずに、注文番号の管理をしたいと先方に言われたので、
カウンターを作って、ゼロ埋めして返すFunctionを作成しました。

引数には、カウンタのファイル名と桁数を入力すると、
返り値に注文番号を返します。

■実行

$order_no = $this->counter(dirname($_SERVER['DOCUMENT_ROOT']).'/approot/count.txt',6);

■関数

/*
 * @access  public
 * @param     String    $filename    カウンタファイル保存先
 * @param     Int    $sprintf    桁数を統一
*/
public function counter($filename,$sprintf = 1){
    //ファイルがなかったら作成する
    if (!file_exists($filename)) {
        touch( $filename );
        chmod( $filename, 0777 );
    }
    $fp = @fopen($filename,"r+") or die("ファイルが開けません");
    flock($fp, LOCK_EX);
    $count = fgets($fp, 64);

    if( (int)$count === 0 ){
        //ファイルがない場合のデフォルトは1
        $count = 1;
    }else{
        //数値が取得できたら連番をつける
        $count++;
    }
    rewind($fp);
    fputs($fp, $count);
    fclose($fp);
    return sprintf('%0'.$sprintf.'d', $count);
}
0 0
Article Rating
申し込む
注目する
guest

0 Comments
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x