入力されたテキストをサーバー上に保存する処理をして、読み込んで一覧表示する処理。
それでは早速、作ってみましょう!
board-input.php
<?php require ‘header.php’; ?> <p>投稿メッセージを入れてください</p> <form action=”board-output.php” method=”post”> <input type=”text” name=”message”> <input type=”submit” value=”送信”> </form> <?php require ‘footer.php’; ?> | <form>タグで囲みます。 |
board.txt
投稿されたメッセージを保存しておくため、今回は「board.txt」というファイルを準備しておきます。
配列にて複数のメッセージが格納されていることがわかります。
メッセージをファイルに保存する際には、JSON(ジェイソン)という形式を使います。その利点は、文字列や配列といったデータ構造を、簡単にファイルに書き込めたり、読み込めたりできることです。
board-input.php
<?php require ‘header.php’; ?> <?php $file = ‘board.txt’; | board.txtは変数fileに格納しておきます。 |
if (file_exists($file)){ | ➀存在確認 file_exists関数を使ってファイルが存在するかを調べます。指定したファイルが存在する場合はTRUE、存在しない場合はFALSEを返します。 |
$board = json_decode(file_get_contents($file)); } | ➁文字列の取得 file_get_contents関数はファイルの全体を読み込み、内容を文字列として返します。 ➂文字列の変換 読み込むファイルは、JSON形式で保存されています。そこでJSON形式の文字列を解釈してPHPの文字列や配列データに変換するjson_decode関数を使います。 |
$board[] = htmlspecialchars($_REQUEST[‘message’]); file_put_contents($file, json_encode($board)); foreach ($board as $message){ echo ‘<p>’, $message, ‘</p><hr>’; } ?> <?php require ‘footer.php’; ?> | 「htmlspecialchars関数」 セキュリティを考慮し、有害なプログラムを実行させないためHTMLタグを無効にさせる。 「file_put_contents(ファイル名, 文字列)」 指定した文字列を指定したファイルに書き込みます。 「json_encode(値)」メッセージの配列をJSON形式に変換する 「foreach」 配列の$boardからメッセージを1個ずつ取得し、変数$messageに格納します。 <hr>タグは水平線を書きます。 |