PHP WEBアプリケーション作成➁ 

「お知らせ機能の作成」とファイルの操作

お知らせのテキストファイルをサーバーにアップロードし、サイト上ではPHPからファイルを読み取って表示させるところまでやってみましょう。

準備

お知らせファイル、info,txtを作成 → ドキュメントルート内のbaseballフォルダの中に格納

info.textファイルにお知らせ内容を記述

ファイルの読み込み表示する

ファイルの読み込みには、file_get_contents関数を使います。

その関数を読み込みたいindex.phpに機能を追加します。

変数infoに代入しています。
変数infoをechoで呼び出しています。
うまく読み込みと表示ができでいます。しかし、改行がされていまんせんね。

改行付きで表示するには?

ブラウザ上で改行するには、改行を指示する<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>’;
        }
?>
ファイルが閉じなかったとき
1行目のみ取得でき、リンクになっていることができました。

お疲れさまでした。次回は「WEBアプリケーション作成➂」にて「お知らせ画面」を作成していきましょう。

PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもあり。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援