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

ここではinfo.phpファイル「お知らせ」詳細画面を作っていきたいと思います。詳細画面ではinfo.txtの内容を読み込んで、1行目を見出し、2行目以降をお知らせ本文としていきたいと思います。イメージはこんな感じです。

完成イメージは下記の通りです。

info.txtファイル

まずは<!DOCTYPE html> より前の冒頭文から追記していきます。

info.php

<?php
$fp = fopen(“info.txt”, “r”);
ファイルを開きます。それを変数fpへ代入します。モードは「r」にて読み込み専用です。
$line = array();
$body = ”;

$lineでファイル内容を1行ずつ格納するための配列を作ります。
$body は本文を格納するための配列です。
if($fp){
    while(!feof($fp)){
        $line[] = fgets($fp);
    }
    fclose($fp);
}
?>
ファイルが正しく開けたら、while構文を使って配列$lineにfgetsした内容を1行ずつ格納していきます。

feof関数(エフイーオーエフ)はファイルの末端かどうかをチェックする関数です(end of file、略してEOF:テキストファイルには改行コードのように隠れたコードが含まれていて、同様にファイルの末尾にもEOFというコードが付いている)
TRUEの場合、末端を示します。
つまりは、このwhile関数はファイルが末端でない間、$lineに1行ずつ格納する処理をします。

読み込みが終わったらfclose関数でファイルを閉じます。
<!DOCTYPE html>  

次に本文部分のプログラムです

<h1>お知らせ</h1>
        <?php
        if(count($line) > 0){
            for($i = 0; $i < count($line); $i++){
             
count関数を使って$lineの行数を数えています。
正しくファイルが開けて、ファイルの中身が配列に格納されてれば1行以上の内容があるはずなので、countの返り値は0以上になるはずですね。

ファイルがうまく開けてないとelseの処理に移ります。うまく開けたらfor構文に移り、0行目から最後の行まで1行ずつ処理していきます。
  if($i == 0){
                    echo ‘<h3>’.$line[0].'</h3>’;
                } else {
                    $body .=$line[$i].'<br>’;
                }
            }
        } else {
            $body = ‘お知らせはありません’;
        }
        echo ‘<p>’.$body.'</p>’;
        ?>
$line[0]の0番目の要素は1行目のタイトル(「会議の日程について」)に該当。
もし$iが0だったら、$line[0]は<h3>タグで表示。



2行目以降は、末尾に改行タグ<br>をつけて$body変数に追加していきます。代入ではなく.=(ドットイコール)なので前に追加されていきます。すべての処理が終わったら<p>タグに挟んで$body変数を表示します。

実装結果

info.txtの内容が反映されました

info.txtファイル

PHPについて

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


わからないことはプロフェッショナルから学ぶのが一番

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

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

就職・転職支援