web関連
【php】filemtime()を使ってファイルの更新日を取得する
ファイルの更新日時を取得するfiletime関数を使ってcssのキャッシュを制御しようとしたときの備忘録
filemtime()とは
ファイルの最終更新日時をUnixタイムスタンプとして取得できる
失敗したらFALSE返す
URL(絶対パス)は使う事ができず、相対パスで取得する必要があるみたい
// 静的サイトだったらこう
<?php echo filemtime( "./style.css"); ?>
// wordpressだったらこう
<?php echo filemtime( get_template_directory()."/style.css"); ?>
こんな感じで取得できる
↓出力するとこんな感じで出る
「1545821093」
FileZillaとかWinSCPのリモートサイト欄のファイルパスコピペしても動いた
date()を使ってUnixタイムスタンプを任意の日時のフォーマットへ変更
date関数と一緒に使う事が多いいみたいね
// 静的サイトだったらこう
<?php echo date("ymdHis",filemtime( "./style.css")); ?>
// wordpressだったらこう
<?php echo date("ymdHis",filemtime( get_template_directory()."/style.css")); ?>
↓出力するとこんな感じで出る
「190710133848」
左から「西暦月日時分秒」って取得している
css読み込ませる時にクエリ(?~ってやつ)で設定しておけばファイルが更新されたらいい感じでキャッシュを削除してくれるようになる
// こんな感じで使う
<link rel="stylesheet" href="./style.css?<?php echo date("ymdHis",filemtime( "./style.css")); ?>" />
視覚的にいつ更新されたかどうかもわかりやすくなる
落ちてるソースコードとかそのまま使ってたからfiletime関数ちゃんと調べたことなかったけどURL駄目なんすね