php note



 

PHP Note(トップページ) > 02.基本的な関数 > 02.ファイル処理 > fwrite関数でファイルに書き込みをする!







[Note] fwrite関数でファイルに書き込みをする!

画面への入出力やファイルへの入出力は、プログラムにおいて最も基本的な操作で重要です。ここでは、ファイルみ書き込みをする「fwrite」関数を紹介します。

新たにファイルを作成しデータを書き込む場合は、以下のようになります。

<?php
 $data = “this is tes data.”;
 $fp = fopen(”newfile.txt”,”w”);
 fwrite($fp,$data);
?>

上記のfopen関数でファイルを開く作業をしています。このfopen関数は、ファイルを読むときも書くときも同様にファイル名を指定して呼び出します。ただ、読むときは “r” モード で呼び出しますが、書き込みの時は “w” になります。”w” の場合は、指定したファイルが存在しない場合は、作成されます。

そして、$fp(変数名は任意だが、一般的に$fpが使われることが多い)に当該ファイルのポインタが格納されます。まあ、$fpにファイルのデータ格納位置の情報がストックされると考えればよいでしょう。

さらに次の分でfwrite関数を呼び出し、$fpにて指定した位置に、以降のデータを書き込むというプログラムになっております。

※追記の場合はモードが異なる
上記の場合、モードが ”w” となっていました。これは上書きモードになりますので、既存のファイルを指定してこのモードで書き込むと、今までのデータが全て消えて新しいデータが上書きされることになります。ですので、”w” モードを使うのは新規のファイル作成の時だけです。

既存のファイルがあって、データを追記する場合は、”a” モード(addの略でしょうか?)で以下のように使用します。

<?php
 $data = “this is test data.\n”;
 $fp = fopen(”oldfile.txt”,”a”);
 fwrite($fp,$data);
?>

上記のように、”a” モードで書き込みを行えば、既存のファイルに追記される形で新たなデータがファイルに書き込まれます。

※改行コード「\n」の挿入
また、上記では、$data の中身の最後の「\n」が挿入されているかと思います。これは改行コードをあらわします。これがないとデータの追記を行ってもファイルの中身が

this is test data.this is test data.this is test data.・・・

といった具合に1行で長いデータになってしまいます。
$data = “this is test data.\n”; といった様に改行コード「\n」をいれておけば、何度も追記しても

this is test data.
this is test data.
this is test data.
・・・

のようなデータになります。

ちなみのこの改行コードはWindowsでは「¥n」と表示されます。
(キーボードの右上に「¥」がありますが、linuxOSなどでは、文字コードがWindowsで使用されているShift_JISではないので、当該キーをたたいても¥マークがでずに「\」になります。)







[ カテゴリ一覧 ]

 |  01.基本構文  |  02.基本的な関数  |