PHP超入門 (35)
今回も、前々回に使ったメモ帳で作ったテキストファイルの内容
を、パソコンの画面に表示する
PHPのプログラムを基にお話を進めていきたいと思います。。
----------------------------------------------------------
<html>
<head>
<title>テキストファイルの中身を表示するテスト</title>
</head>
<body>
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\088-1.txt","r");
fpassthru($file);
?>
</body>
</html>
----------------------------------------------------------
このPHPプログラムは、ハードディスク上にあるメモ帳で作成した文章をパソ
コンの画面や、携帯電話の画面に表示させるだけのプログラムです。
そう、表示させる「のみ」で、後は何もできません。
ここで、人間の心理からいうと、表示させるだけではなく、何か文章を書き込
みたい、と思うのが自然の感情ではないのではないでしょうか?
そこで、今回は、このことについてお話したいと思います。
■メモ帳に作った文章に書き込みをする
さて、このプログラムの2行目
fopen("C:\\inetpub\\wwwroot\\php\\088-1.txt","r")
の「"r"」の部分は引数(ひきすう)といって、ここにいろいろな予め決めら
れた文字を書くことにより、いろいろな形でメモ帳で作ったファイルをいろい
ろな方式で取り扱えることを前回お話しました。
繰り返しになりますが、その引数を一覧でまとめてみると、下記のようになり
ます。
----------------------------------------------------
引数 意味 ファイルが存在しない場合
----------------------------------------------------
r 読み込み専用 エラー
r+ 読み書き可能 エラー
w 書き込み専用 ファイルを作成
w+ 読み書き可能 ファイルを作成
a 追加書き込み専用 ファイルを作成
a+ 読み込み、追加可能 ファイルを作成
----------------------------------------------------
※「ファイルを作成」とは、新しくハードディスク上に、指定したファイル
名で自動的そのファイルを作成することを意味します。
前回は、既にあるメモ帳の文章を表示するだけでしたので、「r」を使いまし
たが、今回は、新たに文章を書き込むので、「r+」を用いることになります。
勿論、一覧表を良く見ると、勘の良い方は「a」や「a+」でもできるのではな
いかと考えるかも知れません。
答えとしては、それで合っています。
ただ、これらについては、別の機能もありますし、微妙に機能が異なるので、
機会をあらためてお話したいと思います。
■メモ帳用の文章に書き込みをするプログラム
まず、始めに、何も文章が書いていない、テキストファイルを作成して、
それを「090-1.txt」の名前で、「C:\inetpub\wwwroot\php」フ
ォルダに保存します。
次にプログラムそのものの紹介です。
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\090-1.txt","r+");
fwrite($file,"あなたの実年齢は25歳です。")
?>
----------------------------------------------------------
これを「090-1.php」のファイル名で、「C:\inetpub\wwwroot\php」フォルダ
に保存します。
そして、ブラウザのアドレス欄に「http://localhost/php/090-1.php」と入力
してください。
そうすると、画面上では何も変化が現れませんが、
先の「C:\inetpub\wwwroot\php」フォルダに保存した、「090-1.txt」をメモ
帳で開いてみてください。
プログラム中で指定した文書が書き込まれている筈です。
ここで、もうひとつ実験です。
以前使用した、メモ帳の文章「088-1.txt」
を「C:\inetpub\wwwroot\php」フォルダに保存します。
次に、以下のプログラムを実行します。
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\088-1.txt","r+");
fwrite($file,"あなたの実年齢は25歳です。")
?>
----------------------------------------------------------
このプログラムと最初のプログラムの違いは、2行目の「"C:\\inetpub\\wwwr
oot\\php\\090-1.txt"」が「"C:\\inetpub\\wwwroot\\php\\088-1.txt"」に変
^^^^^^^^^ ^^^^^^^^^
わっているだけです。
さて、このプログラムを「090-2.php」の名前で「C:\inetpub\wwwroot\php」
フォルダに保存し、
ブラウザのアドレス欄に「http://localhost/php/090-2.php」と入力すると、
最初の場合と同様、画面上では何も変化は起きませんが、「088-1.txt」をメ
モ帳で開いてみると、最初の中身が消えて無くなり、プログラム中に指定した
文章に置き換わっていることが分かります。
すなわち、「fopen("C:\\inetpub\\wwwroot\\php\\088-1.txt","r+")」で指定
している「r+」という引数は、メモ帳の中身に新しい文章を追加するのではな
く、上書き保存する機能であるということが理解できるかと思います。
■プログラムの解説
今回のプログラムで今までと違うところは、一箇所だけです。
すなわち、文章の書き込みに「fwrite(ファイルライト)」関数を使っている
ところです。(2行目)
一般的に書くと
fwrite(1行目で指定してある、文章の場所とその文章をどのような様式で開
けるかを指定した変数,"書き込む文章")
という具合になります。
それほど、難しい関数ではないので、理解はしやすいかと思います。
以上で、今回のお話は終わりですが、次回以降も、他の引数の働きについてお
話していきたいと思います。
■補足:エラーの出る場合の対処方法
これはWindows XP Home Editionの方は関係なく、Windows 2000 Pro又はWindo
ws XP Proを使っている方へのお話です。
このメルマガに沿ってフォルダを作っている場合は問題ないのですが、自分で
自前のフォルダを作った場合、エラーが出る場合があります。
その場合、
http://www.e-and-a.ws/01/011.asp
を参考にして、そのフォルダにパソコンの内部ユーザーである、ユーザー「イ
ンターネットゲストアカウント(XXX\IUSER_XXX)」にそのフォルダに書き込み
かフルコントロールのアクセス権限があることを確認してみてください。