書き込み処理の作成(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が作成されていると思います。
更に開いてみて、データが書き込まれていたら成功です。
 
では、次に書き込み内容を一覧表示させましょう。

 

 

 

 

 
 
(C)1999-2003 BE CORPORATION All rights reserved.Terms of Use. Privacy Policy.