2011年05月30日

ファイルの読み書き


ファイルとのやり取りは、ファイルへの
ストリームのオープンファイルへの読み書き、
ストリームのクローズ、
という形で行われるそうです。

全く何のことやら分かりません(^^;)

ストリームをオープンすると、
ストリームを参照するための整数が返されて、
ファイルの読み書きのたびに
そのストリーム識別子が使われて…。

まぁとにかく、PHPは
その整数を使ってファイルやり取りに必要となる情報を
参照するみたいですね。

ちょっと例を見てみます↓

<HTML>
<HEAD>
<TITLE>ファイルの読み書きの例</TITLE>
</HEAD>
<BODY>

<?php
//書き込み用のファイルを開く
$myFile = fopen("file1.txt","w");

//開けたかを確認する
if(!($myFile))
{
print("エラー! file1.txt を作成できなかったよ\n");
exit;
}

//ファイルに数行書き込む
fputs($myFile, "この行を保存する\n");
fputs($myFile, "この行も保存する\n");

fclose($myFile); //ファイルを閉じる

//読み込み用のファイルを開く
$myFile = fopen("file1.txt","r");

//開けたかを確認する
if(!($myFile))
{
print("エラー! file1.txt を読み込めなかった…\n");
exit;
}

while(!feof($myFile))
{
//ファイルから1行読み込む
$myLine = fgets($myFile, 255);

print("$myLine<BR>\n");
}

fclose($myFile); //ファイルを閉じる

?>
</BODY>
</HTML>

で、表示されたのはこちらです↓

この行を保存する
この行も保存する


まず、ローカルのファイルシステムのファイルを開くのに、
fopen関数が2ヶ所使われていますね。

これはファイル名と
ファイルとのやり取りのモードを決める文字列で構成されていて、

モードには読みとりだけの「r」とか書き込みだけの「w」があります。
「r」は read、「w」は write でしょうね…。

よく添付ファイルとか開くと<読み取り専用>なんていうのがありますが、
あれと関係あるんですかね…?

popen関数でパイプを開いたり、
fsockopen関数でソケット接続を開いたりもできるそうです。
ってことは fopen は file open かな…?

ファイルストリームを開いた後はfputs で書き込んだり、
fgets で読み込んだりできるようになります。

上の例では、1行ずつ読み込むときに
whileループが使われていますね。

feof関数でファイルの終端のテストをしていて、
処理が終わったらfclose関数でファイルを閉じてるみたいです。

何かよく分かりませんが、ファイル関数については
後の章で詳しくカバーされてるようなので、
次に進みます♪


<ご紹介>----------------------------------------------------------------------------------------

gamification.jpg

ゲーミフィケーション辞典48 19,800円

----------------------------------------------------------------------------------------<ご紹介>



コードに登場する関数はこちらで説明してます↓
すでにおなじみの fopen関数
fgets関数
fputs関数
fclose関数

コードには使われてないけど、触れられてる関数についての記事↓
popen関数と pclose関数でエラー出ました(T_T)
fsockopen関数

while文の復習はこちら↓
PHP: ループ - まずは while文



posted by れい at 12:00| Comment(0) | 基礎編 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。