AB型技術系 主に備忘録

ほぼプログラム関連の備忘録

globでファイル探し、filemtimeで更新日付を取得

任意のディレクトリにあるhtmlのファイルの内容を読み込んで配列に格納しようと思います

キーはファイルの更新日付

globでパターンに一致するファイルのパスを探す

<?php
// ファイルの保存場所
$path = "/home/inc/data/";

// htmlファイルのパス名が配列で返される
glob($path."*.html");

?>

これで対象のhtmlが取得できました

filemtimeで更新日付を取得

<?php

// ファイルのパス
$path = "/home/inc/data/test.html";

// ファイルの更新日付を取得
$updateDate = filemtime($path);

echo $updateDate;

?>


出力結果

1503079200

filemtimeの戻り値はUnixタイムスタンプです

つまりは1970年1月1日からの経過秒数です

date関数を使ってフォーマット
<?php

// ファイルのパス
$path = "/home/inc/data/test.html";

// ファイルの更新日付を取得
$updateDate = filemtime($path);

echo date("YmdHis",$updateDate);

?>

出力結果

20170819030000

これで更新日付が取得できました

globでファイル探し、filemtimeで更新日付を取得

<?php

// ファイルのパス
$path = "/home/inc/data/";

// htmlの内容を保持する配列
$list = array();

foreach(($path."*.html") as $file){

    // ファイルが対象
    if(is_file($file)){

        // ファイルの更新日付 
        $key = date("YmdHis", filemtime($file));

    // 更新日付をキーとしてファイルの内容を保持
        $list[$key] = file_get_contents($file);
    }
?>

この配列をキーでソートして更新日付の新しい順にhtmlファイルの内容を出力するのが最終目的です

次回は配列をキーでソートしてみようと思ってます