書き込み処理の作成(3) |
|
では、表示する書き込みデータをファイルに保存します。今回はテキストファイルに保存します。 |
前回のプログラムに以下の記述を追加します。 |
|
conf.php |
<?php
session_start();
//セッションのデータを表示用変数に格納
$view_name = $_SESSION ["name"];
$view_title = $_SESSION["title"];
$view_body = $_SESSION["body"];
//ファイルへの書き込み処理
if (isset($_POST["set"])){
$filename = "C:\\xampp\\htdocs\\bbsfile.txt";
$data = $view_name."/".$view_title."/".$view_body."\n";
$fp = fopen($filename,"a");
fwrite($fp,$data);
fclose($fp);
header("Location:tess.php");
exit;
}
//以下省略… |
赤文字の部分を追加しました。 |
|
・fopen関数、fwrite関数、fclose関数 |
if(isset($_POST["set"]) =
確認ボタンが押されたら書き込み処理を開始します。
|
まず、変数$filenameにテキストファイルへのパスを格納します。 |
ここで、ディレクトリの区切り「\」はエスケープしなければならない文字なので「\\」としています。 |
次に変数$dataに各書き込みデータを「/」(スラッシュ)で区切って格納します。「.」で変数と文字列を連結して |
います。末尾に、改行コード「\n」を記述します。 |
次に、変数$fpにファイルを開く
fopen関数を格納します。fopen関数は以下のように記述します。 |
fopen(ファイル名,"モード") |
ファイル名は先に記述した$filename
です。モードには以下の種類があります。 |
|
モード
|
説明 |
r |
読み込みのみ、ファイルポインタは先頭 |
r+ |
読み・書き可能、ファイルポインタは先頭 |
w |
書き込みのみ、ファイルポインタは先頭、ファイルサイズをゼロにする、
ファイルが存在しない場合は新規作成する |
w+
|
読み・書き可能、ファイルポインタは先頭、ファイルサイズをゼロにする、
ファイルが存在しない場合は新規作成する
|
a |
追加書き込みモードで開く、ファイルポインタをファイルの終端にし、
ファイルが存在しない場合は新規作成する |
a+ |
追加書き込み、読み取りモードで開く、ファイルポインタをファイルの終端にし、
ファイルが存在しない場合は新規作成する |
x |
書き込みのみ、ファイルポインタは先頭、ファイルが存在すると
fopenは失敗してエラーになる、ファイルが存在しない場合は新規作成する |
x+ |
読み・書き可能、ファイルポインタは先頭、ファイルが存在すると
fopenは失敗してエラーになる、ファイルが存在しない場合は新規作成する |
ファイルポインタとは、ファイルの中で読み込みや書き込みを行う位置を表します。 |
今回はどんどんデータを蓄積していきたいので、a
と設定します。 |
次にfwrite関数
でファイルへの書き込みを行います。fwrite関数は以下のように記述します。 |
fwrite(ファイルポインタ,書き込む内容) |
ファイルポインタには、変数$fp、書き込む内容には変数$dataを指定します。 |
最後に、fclose関数でファイルを閉じます。fclose関数は以下のように記述します。 |
fclose(ファイルポインタ) |
これでファイルに書き込みデータが書き込まれました。 |
書き込まれたら、header関数でbbs.phpへ遷移させます。 |
|
実際にフォームから書き込んでみてください。指定したディレクトリにbbsfile.txtが作成されていると思います。 |
更に開いてみて、データが書き込まれていたら成功です。 |
|
では、次に書き込み内容を一覧表示させましょう。 |
|
|
|
|