概要
- シンプルな掲示板です
- ログイン不要
- DBを使わずにファイルにデータを保存します
- 投稿者の名前を自由に付けられます
サンプルコード
ファイルを読み込む
処理概要
- $dataFileにデータファイルのファイルパスを代入
- $postsに$dataFileを配列に変換して代入する
- 配列の各要素の最後から改行文字を取り除く
言語リファレンス
-
file
- ファイル全体を読み込んで配列に格納する
index.php
<?php
// ファイルの内容を配列に取り込みます。
// この例ではHTTPを通してURL上のHTMLソースを取得します。
$lines = file('http://www.example.com/');
// 配列をループしてHTMLをHTMLソースとして表示し、行番号もつけます。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 他の例として、Webページを文字列に取り込みます。file_get_contents()も参照してください。
$html = implode('', file('http://www.example.com/'));
// オプションのパラメータは PHP 5 以降で使用できます
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>
投稿データを表示する
処理概要
- 配列$postsがあれば、表示処理、無ければ、「まだ投稿はありません。」を表示
- 表示処理
- $postsを反復処理。$postに代入
- HTML エンティティに変換して表示
言語リファレンス
- if
- echo
- 1 つ以上の文字列を出力する
- count
- 変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える
- foreach
- 配列及びオブジェクトの反復処理
- htmlspecialchars
- 特殊文字を HTML エンティティに変換する
- 文字の中には HTML において特殊な意味を持つものがあり、 それらの本来の値を表示したければ HTML の表現形式に変換してやらなければなりません。 この関数は、これらの変換を行った結果の文字列を返します。
index.php
<?php if () : ?>
<?php foreach () : ?>
<?php endforeach; ?>
<?php else : ?>
<?php endif; ?>
投稿データを追加、データを書き込む
処理概要
- 投稿されたかどうかをREQUEST_METHODとmessageが空かどうかで判別します。
- 投稿されたデータを書き込み用配列にunshiftで格納します。
- $fpに書き込みモードでファイルを代入
- $fpに$posts配列を改行コードを区切り文字にテキスト化して書き込み
言語リファレンス
投稿件数を表示する
処理概要
- 投稿一覧の末尾にcountを使って投稿件数も表示します。
ユーザー名も投稿させる
処理概要
- "user"という名前で名前用の入力フィールドを用意します。
- 名前もデータに追加します。
- データの区切り文字は"|"で$newDataに代入
- 名前が入力されなかったときの処理「名無しさん」も書きます。
言語リファレンス
日付も表示させる
概要
- 投稿された日付をdateで取得して、文字列の末尾に追加する。
- フォーマットは"Y-m-d H:i:s"
- 投稿日時をHTMLに表示します。変数は$posted