PHP超入門 (37)
今まで、
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\xxx.txt","○");
fwrite($file,"あなたの脳年齢は52歳です。")
fclose($file);
?>
----------------------------------------------------------
という短いですが、プログラム例を中心にイロイロなお話をしてきました。
"○"の部分が、"r+"だと、すでにハードディスク上にある何も書いていないテ
キストファイル「xxx.txt」に「あなたの脳年齢は52歳です。」という内容を
書き込みますし、何か書いてある場合には、それにプログラム内で指定してあ
る内容を上書き保存します。
また、逆に、「xxx.txt」というテキストファイルが予めハードディスク上に
ないとエラーとなってしまいます。
"○"の部分が、"w"だと、ハードディスク上に「xxx.txt」というテキストファ
イルがあれば、"r+"の場合と同じように、プログラム内で指定してある内容を
上書き保存しますが、「xxx.txt」というテキストファイルが無かった場合には、
「xxx.txt」というテキストファイルを自動的に作ってくれる上に、プログラ
ム内で指定してある文章を自動的に書き込んでくれます。
"○"の部分が"r"の場合は、上のプログラムとは少々異なり、
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\xxx.txt","r");
fpassthru($file);
?>
----------------------------------------------------------
という形となり、テキストファイル「xxx.txt」の内容をパソコンの画面上に
表示します。
以上、説明してきたのはfopen関数の引数(引数)について、今までお話して
きた、それぞれの内容の簡単なまとめですが、そこで今回は、最後の引数であ
る、「a(またはa+)」のお話です。
■ファイルを自動的に作ってくれ、さらに追加書き込みをする引数"a"
いろいろと言葉で説明するよりも、実際の動作で説明する方が早いと思います
ので、申し訳ありませんが、いきなりプログラムから登場させます。
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\092-1.txt","a");
fwrite($file,"あなたの脳年齢は52歳です。");
fclose($file);
?>
----------------------------------------------------------
まず、上のプログラムを「092-1.php」というファイル名で、「C:\inetpub\ww
wroot\php」フォルダに保存します。
そして、ブラウザのアドレス欄に、「http://localhost/php/092-1.php」と入
力します。
前回の場合と同じように、ブラウザ上では何も変化はありませんが、
「C:\inetpub\wwwroot\php」フォルダ内を見てみると、「092-1.txt」という
ファイルが自動的に出来ています。
さらに、メモ帳で、その中身を覗いてみると、プログラム中で、記述してある
文章が書き込まれているのが分かると思います。
このように、これまでの部分は、引数が"w"の場合と同じく、「092-1.txt」と
いうファイルがハードディスク上に無ければ自動的にファイルを作ってくれ、
さらに、プログラム中の文章を書き込んでくれます。
引数"w"の場合と異なるのは、次の場合です。
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\092-1.txt","a");
fwrite($file,"私の実年齢は25歳です。");
fclose($file);
?>
----------------------------------------------------------
このPHPプログラムを、「092-2.php」というファイル名で、「C:\inetpub\www
root\php」フォルダに保存します。
そして、ブラウザのアドレス欄に、「http://localhost/php/092-2.php」と入
力します。
この場合も、引数"w"の場合と同様、ブラウザの画面上では何も変化はありま
せんが
メモ帳で中身を見てみると、引数"w"の場合と異なり、「092-2.php」の内容が、
上書き保存されているのではなく、「092-1.php」の中の文章の後に追加して
保存されているのが分かります。
これが、引数"w"と"a"の働きの異なる部分です。
■引数"w"と"a"の応用
ここでは、具体的なプログラムの記述はしませんが、引数"w"と"a"の応用とし
て、次のようなことが考えられるでしょう。
引数"w"・・・新しい内容を古い内容に上書きしてテキストファイルを保存す
るので、その性質を利用したアクセスカウンター
引数"a"・・・新しい内容を古い内容の後に繋げてファイルを保存していくの
で、その性質を利用した掲示板・ゲストブック等
■引数"a+"について
今までお話してきた、プログラムで使用してきた引数「a」は書き込み専用で
したが、それに読み込みもできる機能をつけたのが、引数「a+」です。
正直言いますと、イロイロ手を尽くして探してもみたのですが、あまり良い例
が見つからず、この程度の説明でご容赦ください。
もし、何かプログラム中で使用する場合には、機能の広い「a+」の方が無難で
はないかと思います。