さていよいよファイルの操作です。実際にファイルを読込みます。これができればテキストファイルやデータファイルを読み込んで加工できるのでちょっとワクワクです。
キーワードとしてはfopen feof fgets floseの順に使っていきます。簡単に文法の確認です。
fopen("ファイル名" , モード);)
上記は通常 ハンドル名 = fopen("ファイル名"); というように記述されます。オープン(使える状態)にしてそれをハンドル(車のハンドルと考え操作するものと認識しています(私が))としているようです。
feof(fopenで指定したファイルハンドル)
eofというのはファイルの最終部につけられるマークみたいなものでこれで読込みの終わりを検出しているようですテキストではwhileと一緒に利用していました。
fgets(fopenで指定したファイルハンドル , バッファの長さ)
これが読込みを行う関数です。バッファの長さとは一度に読込む大きさをさします。必要に応じて変更すればいいと思います。あとテストはしていませんが改行でも一時読込みを停止するようです。
fclose(fopenで指定したファイルハンドル)
開いたものは閉じましょう。使いっぱなしだと机の上がごちゃごちゃになり作業エリアが狭まります(とおもっています@メモリ)
|
ちょっと説明が長くなってしまいました早速テストプログラムです。
<?
//形式は下記の通りらしいです。ファイルをオープンできたら利用し、できないのなら
//処理を抜けるという方法を利用しています。
if(!($File_H = fopen("/var/www/html/test/test.test" , "r")))
//ファイルをオープンして処理が異常ならば下記を実行
{
echo("ファイルが読込めません<br>");
exit;
}
$num_Loop = 0;
while(!feof($File_H))
//ファイルの終わりを検出できなければ下記を実行(つまり文の途中ならば)
{
$Line_Buf = fgets($File_H , 100);
$num_Loop = $num_Loop + 1;
echo ($Line_Buf . "ループ回数は" . $num_Loop . "回です<br>" );
}
fclose($File_H);
?>
|
実行結果
注意点が上記ソースの中に記述しました。
念のためループカウンタを設けてループを回数を表示してみましたところバッファは100バイトとっているにもかかわらず改行で読込みを一時ストップしていることが判明しました。
|