min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

PHP サーバ内のファイルを読むだけのシンプルな雛形を作る(拡張子php内にhtmlも書く)

こんな感じにサーバ内のファイルを一覧化して、かつそれらファイルの更新日付を表示したい。

f:id:min117:20191207140542p:plain

 

htmlファイルとphpファイルを分けずに、拡張子.phpファイル1つでやる

min117.hatenablog.com

 

できた。作成工程(gifアニメ)はコレ。

 

htmlのbody部を作る。

f:id:min117:20191207142712g:plain

 

foreachによるループでサーバ内のファイルを一覧化する。

f:id:min117:20191207142911g:plain

 

一覧にファイルの更新日付を表示する。date( '書式', filemtime(対象ファイル)) で日付を取れる。

f:id:min117:20191207142734g:plain

更新日付取得部分は(ループ内で何回も使えそうだから)関数化した。

 

「クリックして再生」リンクを作る。

f:id:min117:20191207143003g:plain

ループ内で<a href... を書く。

 

もし(if)画像ファイルだったら表示するようにする。

f:id:min117:20191207143938g:plain

forループ内でif文判定する。

 

拡張子で(画像かどうかを)判定する。拡張子の取得のしかたがキモ。

f:id:min117:20191207144203g:plain

 

ソースはこれ。57行で実装できた。

f:id:min117:20191207144406p:plain

シンプル is ベスト。いろいろ使いまわせそう。雛形にする。

 

コピペ用

  1 <?php

  2 

  3 print '<h1><font color="red">hello,this is my gallery</font></h1>';

  4 

  5 $files = scandir('.');

  6 

  7 print '<h2><font color="blue">foreachループここから</font></h2>';

  8 print '<hr>';

  9 

 10 foreach($files as $i) {

 11     print "$i";

 12     print '<br>';

 13 

 14     // 拡張子を取得

 15     $info = new SplFileInfo($i);

 16     $ext = $info->getExtension();

 17     print '<br>';

 18     // print '拡張子:' . "$ext";

 19     // print '<br>';

 20 

 21     // 拡張子jpgファイルだったら画像を表示する

 22     if ("$ext" == 'jpg') {

 23         // print '<a href="' . "$i" . '"><img src="' . "$i" . '"></a>';

 24         print '<a href="' . "$i" . '"><img src="' . "$i" . '" width="100"></a>';

 25 

 26     // 拡張子jpgファイルでないならリンクのみ表示する   

 27     } else {

 28         print '<a href="' . "$i" . '">クリックで再生</a>';

 29     }

 30 

 31     showDATE("$i");

 32 }

 33 

 34 print '<h2><font color="blue">foreachループここまで</font></h2>';

 35 

 36 function showDATE($file) {

 37     $fileDATE = date( 'Y-m-d H:i:s' ,filemtime($file));

 38     print '<br>' . '<font color="orange">' . $fileDATE . '</font>';

 39     print '<hr>';

 40 }

 41 

 42 ?>

 43 

 44 <!DOCTYPE html>

 45 <html lang="ja">

 46 <head>

 47     <meta charset="utf-8">

 48     <title>PHPによるファイル読み込みテスト</title>

 49     <script>

 50     </script>

 51     <style>

 52     </style>

 53 </head>

 54 <body>

 55     <h1>これは「拡張子php」内に書いたhtmlボディの文章です</h1>

 56 

 57 </body>

 

gifアニメの作り方はこれ。

min117.hatenablog.com

gifアニメの表現力はバカにできない。

 

更新日付の取得方法はこのへん参照。

alllearnhobby.com