libro
www.tuyano.com
初心者のためのPHPプログラミング入門

テキストファイルの利用 (6/7)

作成:2010-12-05 14:57
更新:2010-12-05 14:57

■fputsによるファイルの保存

続いて、ファイルの保存を行いましょう。これは、「fputs」という関数を使って行います。以下のような形で呼び出します。
fputs( ファイルポインタ , データ );
たったこれだけで、ファイルにデータを保存することができます。ファイルに書き出すとき、注意したいのはアクセスモードです。書き出しのアクセスモードには2種類あるので間違えないでください。

'w'を指定した場合には、これは「上書きモード」になります。既にファイルがあった場合、これを消して、新たにファイルを作ってfputsで書き込みます。

'a'を指定した場合には、「追記モード」になります。既にファイルがあった場合、そのファイルの最後にfputsした内容を追加していきます。つまり、fputsでどんどんデータを追加できるわけです。

用途に応じてこの2つのモードを使い分けるようにしてください。では、下に簡単なサンプルをあげておきましょう。これは、簡単なメモ書きアプリです。入力フィールドからテキストを書いて送信すると、それがファイルに追加されます。入力フォームの下には、保存したメモが、新しいものから順に番号付けして表示されます。

ここまでの「ファイルの保存」「ファイルの読み込み」の両方を使っています。どのようにして動いているかそれぞれで考えてみましょう。ファイルアクセスができるようになると、こんなふうに、ちょっと実用に使えそうなものがぼちぼち作れるようになってきますよ。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?php
	// データの追記
	if ($_POST != null){
		$f = @fopen("data.txt",'a') or exit("ファイルが読めません。");
		if ($f != null){
			$s = $_POST['text1'];
			fputs($f,$s . "\n");
			fclose($f);
		}
	}
	// ファイルの読み込み
	$f2 = @fopen("data.txt",'r') or exit("ファイルが読めません。");
	$result = '';
	$i = 1;
	while(!feof($f2)){
		$s2 = htmlspecialchars(fgets($f2));
		if ($s2 != ""){
			$result = $i++ . ": " .$s2 . "<br>" . $result;
		}
	}
	fclose($f2);
?>
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
		xml:lang="ja" lang="ja"> 
	<head> 
		<meta http-equiv="Content-Type"
			content="text/html; charset=UTF-8" /> 
		<title>sample page</title>
	</head>
	<body>
		<h1>Hello PHP!</h1>
		<form method="post" action="./index.php">
			<input type="text" name="text1">
			<input type="submit">
		</form>
		<hr>
		<p><?php echo $result; ?></p>
	</body>
</html>

※関連コンテンツ

「初心者のためのPHPプログラミング入門」に戻る