PHP - BASIC - 11. PHPのファイルシステムを扱う関数 - 7. ファイルの書き込み
ファイルの書き込みも 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
というファイルが作成されているのがわかるでしょう。
テキストエディタで names.txt
ファイルを開いてみましょう。
Andy
Betty
上記のようにプログラムによって出力した2件の名前が確認できるでしょう。
それではプログラムの詳細を見てみましょう。このプログラムは配列 $names
に代入されている3人の名前をファイルに書き込むプログラムです。 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
関数を組み合わせて制御できます。
まとめ
fopen
関数は戻り値にファイルポインタを返すfwrite
関数はファイルポインタにデータを書き込むfclose
関数でファイルポインタを破棄する
fwrite
- バイナリセーフなファイル書き込み処理
- 引数
- ファイルポインタ
- ファイルに書き込むデータ
- 戻り値
- 書き込んだバイト数
- 失敗した場合は
false