HOME   入り口   MENU


No7.読んだり書いたりは楽しい♪ ---- ファイル操作




これができるといろいろ楽しい(^_^)です。
いろんな読み書きがあるけれど、ちょこっと書いて、ちょこっと読むなら
fputs(書く),fgets(読む)で可能です。
プラス
ファイルを読み書きする前にはそのファイルをfopen(開く)
それから読み書きした後にfclose(閉じる)ことが必要です。

まずは書くから!

<?php
//ファイルを開く
$fp=@fopen("files/20030115.txt","w") or die("ファイルのオープンに失敗しました");
//あいうえおとファイルに書く
fputs($fp,"あいうえお");
//ファイルを閉じる
fclose($fp);
?>

これでプログラムと同じディレクトリにあるfilesディレクトリの中に
2003015.txtというファイルができて「あいうえお」と書かれました。
(注:ファイルを作るディレクトリ(この例だと[files])の
パーミッションは[777]にしてくださいね)

じゃあ今作ったこのファイルを読んでみましょう。

<?php
//ファイルを開く
$fp=@fopen("files/20030115.txt","r") or die("ファイルのオープンに失敗しました");
//ファイルを読んで内容を$buffに入れる
$buff=fgets($fp);
//ファイルを閉じる
fclose($fp);
//ファイルの中身を表示
echo $buff;
?>

これを実行すると変数$buffにファイルに書き込まれた
「あいうえお」が代入されます。
そして、
あいうえお
と表示されます。

こんな風にファイルの読み書きができます。(^_^)
おっと、書き忘れてました。
@fopen("files/20030115.txt","w");
ファイルを書くときのfopenではファイル名の後ろに"w"だけど
読むときはここが"r"になってます。
これはファイルを書き込みで開く("w")、読み込みで開く("r")という意味です。
その他にもモードがあるので、もっと詳しく知りたい方は
PHP日本語マニュアル へ。

サンプル: こう書くと   ==>    こうなる!

ファイルに入力された内容を追加して、それを表示してます。
サンプルでは読み込んだファイルを配列に入れて
それを逆順にしてから表示しているので、
一番新しいものが一番上に表示されるようになります。
作ってて楽しかったので、自分のところからもリンクしちゃいます。(笑)




(オマケ)
ファイルを開く処理:
$fp=@fopen("files/20030115.txt","w") or die("ファイルのオープンに失敗しました");
ちょっと分かりにくいのがfopenの前の@と後ろのorです。
@fopenでエラーが起きてもエラーは無視され
エラーメッセージは表示されませんという意味です。
そしてorはファイルオープンが正常にできなかったらその後の処理
ここでは"ファイルのオープンに失敗しました"と表示して
dieプログラムを終了します。

これは論理演算式の方式です。
最初にファイルオープンを実行し、これがtrue(真)だったら、orが成立するので(どちらかが真)
後ろのdieは無視されるというカラクリです。











  HOME