PHP SCHOOL.biz

PHPの学習をする為のブログです。プログラム未経験の方にも理解できるよう基本的な、PHPの知識について身に付けることができるようにわかりやすい内容にしていきたいと思っています。


PHPでのファイルの作成・書き込み

この章では、サーバー上でファイルを作成して書き込む方法を説明します。

PHPファイルの作成 - fopen()

fopen()関数は、ファイルの作成にも使用されます。少し混乱するかもしれませんが、PHPでは、ファイルを開くために使用されたのと同じ関数を使用してファイルが作成されます。
存在しないファイルに対してfopen()を使用すると、ファイルが書き込み(w)または追加(a)のために開かれ、作成されます。
以下の例は、 "testfile.txt"という名前の新しいファイルを作成します。このファイルは、PHPコードが置かれているのと同じディレクトリに作成されます。

<?php
$myfile = fopen("testfile.txt", "w")
?>

PHPのファイルへの書き込み - fwrite()

fwrite()関数は、ファイルへの書き込みに使用されます。
fwrite()の最初のパラメータは書き込むファイル名を記載し、2番目のパラメータは書き込まれる文字列を記載します。
以下の例では、新しいファイル "newfile.txt"に2つの名前を書き込みます。

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "John Doe\n";
fwrite($myfile, $txt);
$txt = "Jane Doe\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

ファイル "newfile.txt"に2回書いたことに注目してください。ファイルに書き込むたびに、最初に "John Doe"という文字列$txtが送信され、2番目に "Jane Doe"という文字列が送信されました。書込みが終了したら、fclose()関数を使ってファイルを閉じました。

"newfile.txt"ファイルを開くと、次のようになります。

John Doe
Jane Doe

PHPでのファイルの上書き

「newfile.txt」には、既存のファイルを書き込み用に開いた時にはどのようなことが起きるのでしょうか。
「newfile.txt」には上の例の名前がすでに記載されています。しかし、新しくファイルを開くと下の例のようなことが起きます。
既存のデータはすべて消去され、空のファイルに新しくデータを記載します。
以下の例では、既存のファイル "newfile.txt"を開いて新しいデータを書き込んでいます。

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

"newfile.txt"ファイルを開くと、JohnとJaneの両方が消えて、今書き込んだデータだけが存在しています。

Mickey Mouse
Minnie Mouse