「お知らせ機能の作成」とファイルの操作
お知らせのテキストファイルをサーバーにアップロードし、サイト上ではPHPからファイルを読み取って表示させるところまでやってみましょう。
準備
お知らせファイル、info,txtを作成 → ドキュメントルート内のbaseballフォルダの中に格納
ファイルの読み込み表示する
ファイルの読み込みには、file_get_contents関数を使います。
その関数を読み込みたいindex.phpに機能を追加します。
改行付きで表示するには?
ブラウザ上で改行するには、改行を指示する<br>タグを使う必要があります。お知らせファイル(info.txt)での改行は、目には見えてませんが改行コードというコードで表現されています。この改行コードを<br>タグに置き換える必要があります。
それには、nl2br関数(エヌエルツービーアール関数)を使います。第一引数は元の文字列、返り値は改行コードが置き換わった文字列です。改行タグは、第二引数になにも指定しないとXHTML準拠の<br/>タグになり、falseを指定すると<br>タグになります。ではやってみましょう。
タイトルだけ表示し、タイトルのリンクをクリックすると詳細画面に移るようにする
準備
お知らせのテキストファイルを、1行目をタイトル、2行目以降が本文になるように修正。また、お知らせの詳細画面はトップページのデザインを使うため、index.phpをコピーしてinfo.phpというファイルを作っておきます。
そしてinfo.txtは下記のように追記しておきます。
ファイルの読み込みの流れについて
- fopen関数(ファイルオープン関数)でファイルを開く
- fgets関数(ファイルゲッツ関数)で1行読み取り
- fclose(ファイルクローズ関数)でファイルを閉じる
fopen関数
fopen("ファイル名", "モード");
引数で指定されたファイル名を、指定された「モード」で開きます。正しく開けたらファイルポインタを返り値として返します。
fgets関数
fgets(ファイルポインタ);
fclose関数
fclose(ファイルポインタ);
ファイルポインタ
ファイルポインタとは、どのファイルのどの位置にあるかを示したもので、ワープロソフトでいうカーソルのことです。
モード
モードとはどのような状態でファイルを開くかを指定するもの。次のようなモードがあります。
モード | 意味 | 説明 |
r | 読み込み専用 | ・ファイルポインタ位置:ファイルの先頭 ・ファイルサイズ :そのまま ・ファイルがない場合 :開けない |
r+ | 読み・書き | ・ファイルポインタ位置:ファイルの先頭 ・ファイルサイズ :そのまま ・ファイルがない場合 :開けない |
w | 書き込み専用 | ・ファイルポインタ位置:ファイルの先頭 :ファイルサイズ :0になる ・ファイルがない場合 :作成する |
w+ | 読み・書き | ・ファイルポインタ位置:ファイルの先頭 ・ファイルサイズ :0になる ・ファイルがない場合 :作成する |
a | 追記 | ・ファイルポインタ位置:ファイルの末尾 ・ファイルサイズ :そのまま ・ファイルがない場合 :作成する |
a+ | 読み・追記 | ・ファイルポインタ位置:ファイルの末尾 ・ファイルサイズ :そのまま ・ファイルがない場合 :作成する |
これらを踏まえてindex.phpファイルを修正してみましょう。
<?php $fp = fopen(“info.txt”,”r”) ?> | info.txtファイルを読み込み専用モードで読み込む。それを変数$fpに代入 |
中略 | |
<?php if($fp){ $title = fgets($fp); if($title){ echo ‘<p><a href=”info.php”>’.$title.'</a></p>’; | 開けたファイルの一行目を変数titleに代入する。 もしファイルが正しく開けたら、echoでの呼び出しは変数titleの一行目のみとし、リンク先はinfo.phpとする。 |
} else { echo ‘<p>お知らせはありません</p>’; } | ファイルの中身が空だったときは、お知らせはありません、と表示する |
fclose($fp); | ファイルを閉じる |
} else { echo ‘<p>お知らせはありません</p>’; } ?> | ファイルが閉じなかったとき |
お疲れさまでした。次回は「WEBアプリケーション作成➂」にて「お知らせ画面」を作成していきましょう。