ファイルの書き込み

ファイルの書き込みもfopen関数、fwrite関数、fclose関数によって制御できます。

  • fopen — ファイルまたは URL をオープンする
  • fwrite — バイナリセーフなファイル書き込み処理
  • fclose — オープンされたファイルポインタをクローズする

次のプログラム(fs6.php)を作成してみましょう。

<?php
$names = ["Andy", "Betty"];
$file = "names.txt";
$handle = fopen($file, "w");
foreach($names as $name) {
  fwrite($handle, $name . PHP_EOL);
}
fclose($handle);

まずはプログラムを実行してみましょう。

$ php fs6.php

上記のように実行してもターミナル上には何も表示されないでしょう。その代わりカレントディレクトリ上に”names.txt”というファイルが生成されているのがわかるでしょう。

ターミナルでlsコマンドやcatコマンドで確認してみましょう。

$ ls names.txt
names.txt
$ cat names.txt
Andy
Betty

それではプログラムの詳細を見てみましょう。このプログラムでは配列$namesに代入されている2人の名前をファイルに書き込むプログラムです。fopen関数でファイルを開いていますがアクセス形式に”w”を指定しています。

$handle = fopen($file, "w");

アクセス形式”w”は上書きモードでファイルに書き込みを行います。

“a”を指定すると追記モードになります。

その後、foreach文の中でfwrite関数を使ってファイルにデータを書き込んでいます。

foreach($names as $name) {
  fwrite($handle, $name . PHP_EOL);
}

fwrite関数は第1引数にファイルポインタ、第2引数にファイルに書き込むデータを指定します。

foreach文の繰り返し処理を終えた後はfclose関数でファイルを閉じています。

fclose($handle);

このようにファイルの書き込み処理も fopen 関数、 fwrite 関数、 fclose 関数を組み合わせて制御することができます。


前へ | 次へ