■データファイルの用意
今回は書き込みをしますので、書き込んだモノを保存しておけるテキストファイルを作りましょう。「lesson6」フォルダの中に「data.txt」として保存しましょう。(中身は空でOKです)
■サンプルプログラム1
<html>
<head>
<title>form</title>
</head>
<body>
書き込む内容を入力してください。<hr>
<form name="form" action="./sample03.php" method="POST">
<input name="body" type="text" size="40">
<input type="submit" value="書込">
</form>
</body>
</html>
テキストエディタに以下のように書き込んで、「lesson6」フォルダの中に「form.html」として保存しましょう。
■サンプルプログラム2
<?php
$body = $_REQUEST["body"];
$body = $body."\n";
?>
<html>
<head>
<title>Sample03</title>
</head>
<body>
<?php
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
echo "書き込み完了<br><a href=\"./data.txt\" target=\"_blank\">中身を見る</a><br>",
"<a href=\"./form.html\">戻る</a>";
?>
</body>
</html>
テキストエディタに以下のように書き込んで、「lesson6」フォルダの中に「sample03.php」として保存しましょう
できましたら、ブラウザのアドレスに
「http://localhost/lesson6/form.html」にアクセス!
ロリポップ!
さくらのレンタルサーバ
などのレンタルサーバー使ってる方はlocalhostのところはドメイン名になります。
(簡単に安くネットショップを開きたい方はこちら!)
さて、如何でしょうか?ちゃんと表示されましたでしょうか?
■解説1(form.html)
さて、form.htmlのほうの解説は飛ばしちゃいます。ここまで来れば皆さんはできるはずです!
■解説2(sample03.php)
$body = $body."\n";
まずは、form.htmlから受け取ったデータを$bodyに格納しています。そしてこれをちょこっと加工しています。え〜っと、今回はテキストデータに書き込んでいくわけですが、1行ずつ保存していかないといけません。なので改行(\n)が必要なのです。改行がないと1回目に書き込んだデータのすぐ後ろに2回目に書き込んだデータが書き込まれてしまいます。コノ場合file()関数で読み込むと1行しか取得できいということになります。改行(\n)を入れることによって1回目に書き込んだデータ、2回目のデータと区別がつけられるのです。この辺がよくわからなければLesson6-2を参考にしてください。
さて、$bodyと"\n"の間に . (ドット) があるのがお分かりでしょうか?小さいな・・・。これはデータとデータを繋ぎます。
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
ここからが書き込むところです。たった3行で書き込めちゃうんですね〜。
$fp = fopen("./data.txt","a");
fopen()関数を使って、ファイルを開きます。第一引数("./data.txt")は開きたいファイルのパス。第二引数("a")ファイルを開くモードです。このaというのは追加書き込みモード(ファイルが存在しない場合は新規作成してくれます。)です。これらのデータを$fpという変数に格納しています。これをファイルハンドルと呼びます。
fputs($fp,$body);
fputs()関数は実際にファイルに書き込む関数です。第一引数($fp)はファイルハンドル。第二引数($body)書き込みたいデータを指定します。
fclose($fp);
最後に書き込みが終了したので、fclose()関数を使ってファイルを閉じます。
如何でしたでしょうか?意外と簡単でしたよね?もうこの辺までくると本格的な感じがしませんか?file()関数と組み合わせれば書き込んだモノを表示できますよね。こうなってくると簡単な掲示板ならできそうですね!最後のレッスンではそれを作成していきます。