php spot
phpが使えるレンタルサーバー特集
検索グラス
トップページへ

ファイルに書き込んだ内容を表示
さあ、前のページで書き込んだファイルを表示する部分を見ていきましょう。

書き込んだデータを表示すればもう掲示板の説明は終わりです。
あとちょっとですので頑張りましょう!

<?php
// 記事表示部分

// 記事読み込み
if (file_exists($LOGFILE)) { … (1)
  $lines = file($LOGFILE); … (2)
} else {
  $lines = array(); … (3)
}

// 記事が1件以上保存されていたら
if (count($lines) > 0) { … (4)
  for ($i=0; $i<count($lines); $i++) { … (5)
    list($l_name,$l_message,$l_date) = split(",",$lines[$i]);… (6)
    echo <<<EOM … (7)
$l_name - $l_message &lt;$l_date&gt;<br>
EOM;
  }
}
?>
※ 上記ソースはエディタでコピーペーストしても動作しないのでご注意を。

投稿フォームの後ぐらいに上記ソースがあります。

ソース内の番号について説明していきます。

(1) ログファイルが存在するかチェックします。存在しないのに読み込むとエラーになるのでここでチェックします。$LOGFILEはファイルの最初の方で定義しましたね。

(2) 表示用に、$file に file 関数で読み込みます。
ファイルに

あきら,こんにちは,2005/02/06 01:39
ひろし,こんにちは,2005/02/05 01:39

と保存されていた場合は

$file[0] → あきら,こんにちは,2005/02/06 01:39
$file[1] → ひろし,こんにちは,2005/02/05 01:39

という感じに格納されます。

(3) ファイルが存在しない場合は $file を空で初期化します。array() で配列型として空で初期化できます。

(4) ファイルを読み込んで、ファイルに1行以上保存されていたら表示開始です。countで配列の件数をカウントできるので これを if 文で判定します。

(5) 読み込んだファイル配列をすべて処理するために for 文で1行づつループさせます。

(6) ファイルの1行は$line[$i]で取得できるので、これをsplit関数をつかって名前、メッセージ、日付に再分割しましょう。書き込みの時点で1行にしてしまっているので、ここで3分割してどれが名前、メッセージ、日付、というのを分けることが出来ます。
split関数は非常によく使います。
split("区切り文字",$string) で $string を区切り文字で分割できます。ソースでは , (カンマ)区切りになっています。

名前,メッセージ,日付

split(",",$line[$i]) で

名前
メッセージ
日付

に分割できます。

(7) echo <<<EOM 〜 EOM; 部分はヒアドキュメントといい、その中に改行をいれて自由に文字列を入れることが出来ます。結構使いますので覚えておきましょう。

$l_name - $l_message &lt;$l_date&gt;<br>

という指定で、名前 - メッセージ<日付>で表示されます。

これで表示部分は実装することが出来ました。

以上で掲示板は出来上がってしまいました。
非常に簡単ですね。
あとは入力チェックなどを行えば実用出来そうですね。

ソースの確認 (文字化けの場合はブラウザのエンコード設定を変えてください)

スポンサードリンク



もどる
管理人の新着ブログ記事

    プライバシーポリシー | お問い合わせ
copyright © 2003-2017 phpspot all rights reserved. powered by phpspot CMS.