*

php:ファイルの更新日時を取得し、クエリとして付与する

公開日: : php


cssやjsを更新した際に、キャッシュされてしまい表示が更新されないという事が良くあると思います。更新の際にファイル名を変更すれば解決しますが、htmlやプログラムの書き換えが必要になってしまい手間がかかるので、ファイル更新日時を取得してクエリとして付与して回避する方法を記載します。

 

ファイルの更新日時を取得

ファイルの更新日時を取得します。時間は Unix タイムスタンプとして返されます。

$file = "sample.txt";
$mtime = filemtime($_SERVER['DOCUMENT_ROOT'] . $file);

 

 ファイル名の後方に更新日時を付与する

上記の関数を利用して更新日時を取得し、ファイル名の後ろに”?”付きでクエリ文字列として付与します

function addQueryByMtile($file) {
  if(!file_exists($file)) {
    //ファイルの存在判定
    //存在しない場合はファイル名をそのまま返す
    return $file;
  }

  //更新日時を取得
  $mtime = filemtime($_SERVER['DOCUMENT_ROOT'] . $file);
  //ファイル名の後方に"?"に続けて更新日時を付与して返す
  return preg_replace('{\\.([^./]+)$}', ".\$1?$mtime", $file);
}

 

使用例

$file = "sample.css";
$result = addQueryByMtile($file);
echo $result;

//出力結果
sample.css?1400593054

 

returnされた値をhtmlヘッダーでのcssやjsのファイルに指定すれば完了です。

ファイルに更新が合った場合、クエリ部分が変更されるのでキャッシュではなく新たにファイルを取得することになり、変更した内容が反映されるといったかたちです。

ad_right_top

関連記事

blog_logo_small

php:GD画像ライブラリのインストール

MediaWikiを利用する上で、画像のサムネイル表示を使う場合はインストールが必要となります。

記事を読む

blog_logo_small

phpでRSSを取得して読み込む方法

ブログなどで新着記事の配信に利用されているRSSをphpで読み込んで表示する方法について掲載します。

記事を読む

blog_logo_small

intl PEC のインストール

MediaWikiの利用において「intl pecl 拡張機能」を使用する場合はインストールが必要で

記事を読む

blog_logo_small

php:関数の命名について

DBに登録されている日時と現在日付から5日前である事をチェックする関数名で 下記で一番わかりや

記事を読む

blog_logo_small

php:文字列を特定文字で分割する方法

プログラムを書いていると結構頻繁に遭遇する文字列分割。phpでの書き方を掲載します。 &nbs

記事を読む

blog_logo_small

php:for文の終了条件には複雑な処理を書かない

php で for文を使ってループ処理をするときの注意書きです。 for文の構造は下記のような

記事を読む

blog_logo_small

php:配列の要素を連結して文字列出力[implode]

ログ出力などで配列の中身を出力したい場合に、簡単に配列を連結して文字列化する方法です。 &nb

記事を読む

blog_logo_small

php:文字列分割関数explodeとpreg_splitの速度について

以前の記事で文字列分割を行うexplodeとpreg_splitを紹介した際に、explodeの方が

記事を読む

blog_logo_small

php:配列でキーの存在確認をする方法

ソースを書いていて何度が調べることがあったので備忘の為に残しておきます。   配列

記事を読む

blog_logo_small

Laravel:artisanを利用したコマンドライン実行

定期的にデータの更新が必要な場合などにphpで記述した処理を実行したい時もあるかと思います。メンテナ

記事を読む

google以外広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ad_right_top

linux-pen
【cron】秒間隔で定期実行する為の設定方法

コマンドを定期実行させたい場合に利用するcronですが、普通に利用する

blog_logo_small
【Apache】 ReverseProxy(リバースプロキシ)を設定してサブディレクトで別サーバーの内容を表示

今回はApacheのリバースプロキシ設定について紹介したいと思います。

blog_logo_small
【Apache】 Aliasを設定してサブディレクトでDocumentRoot以外を参照する

今回はApacheのAlias設定について紹介したいと思います。この方

no image
2015:新年のご挨拶

明けましておめでとうございます。 昨年はたくさんの方々に当ブログ

blog_logo_small
MySQL:外部ホストからのDBアクセス方法

MySQLではデフォルトで外部ホストからのアクセスを許可していないので

→もっと見る

  • アクセスカウンター
PAGE TOP ↑