かんたんな掲示板

メッセージ:

日時メッセージ

ソース

<form action="bbs.php" method="post">
<p>メッセージ:<br />
<textarea name="msg" rows="5" cols="60"></textarea><br />
<input type="submit" value="送る" />
<input type="reset" value="クリア" /></p>
</form>

<?php
  $t = time();
  if ($_POST['msg'] != '') {
    $f = fopen('bbs.csv', 'a');
    fputcsv($f, array($t, $_POST['msg']));
    fclose($f);
  }
  $f = fopen('bbs.csv', 'r');
  echo "<table border=\"1\">\n";
  echo "<tr><th>日時</th><th>メッセージ</th></tr>\n";
  while (($a = fgetcsv($f)) != FALSE) {
    if ($t - $a[0] < 60 * 60 * 24) {
      echo "<tr><td>", date("Y-m-d H:i:s", $a[0]),
           "</td><td>", htmlspecialchars($a[1]), "</td></tr>\n";
    }
  }
  echo "</table>\n";
  fclose($f);
?>

あらかじめ bbs.csv という空のファイルを作り,他人に書き込みを許しておきます。

解説

書き込みをすると,bbs.csv というファイルの各行に,書き込み時刻(1970年頭から起算した秒数)とメッセージとがコンマ区切りで入ります。例えば次のようになります:

1249128380,こんにちは
1249128395,ようこそ!

このようなファイルをCSVファイルといいます。CSVは comma-separated values(コンマ区切りの値)の意味です。

このファイルを読み出して,書き込み時刻が1日前より新しいものだけ出力しています。


奥村晴彦

Last modified: 2009-08-01 21:25:42