php ファイル作成の小ワザ|同じ名前のファイルがある場合の処理

スポンサーリンク

はじめに

phpでファイルを作成するとき、同じ名前のファイルがすでに存在している場合
普通にやると上書きしてしまう。同じ名前のファイルが存在するとき、連番を加えて
ファイルを作成する方法について。

こんなかんじでファイルに連番をつけたい。
f:id:shangtian:20190212200328p:plain

ファイル名を作る部分のコード

ファイル名を作る関数部分のコード。

function makeName() {
    date_default_timezone_set('UTC');
    $fileName = date("Y-m-d");
    $tmp = $fileName;
    $i = 0;
    while(file_exists('tmp/' . $tmp . '.gif')){
        $tmp = $fileName . '_' . $i;
        $i++;
        if($i>100){
            break;
        }
    }
    return $tmp . '.gif';
}

このように書けば重複したファイルがあった場合、連番をつけたファイルを作成出来る。

f:id:shangtian:20190212215128p:plain

この部分で日付を変数に代入している。

date_default_timezone_set('UTC');
    $fileName = date("Y-m-d");

この関数で同じ名前のファイルが存在しているかどうかを確認。 存在する場合はTRUEを返すのでループを抜け出せない。

file_exists();

それとif文を使って100回以上繰り返された場合はループを抜けるようにした。

全体のコード

動画からgifファイルを作成するアプリ。

gist2d9bb02dbbf8cb7722c5bf8e0bcf2eb0

gistccb45adeba9908f4c18b1fa89f1033af