まるもの勉強日記。

実はSE目指してます。

PHP : ファイルの入出力

PHPはデータ保存の際、データベースがよく利用されている。
が、テキストファイルにもデータを書き込むことができる。

ファイルを扱う命令はいくつかある。

 

まずは、 fopen 関数。
fopen 関数はファイルを新規作成したり開くことができる。
引数に「開きたいファイル」と「モード」を指定できる。

fopen("開きたいファイル"orパス,"モード");

〈主なモード一覧〉

モード 説明
r 読み込みのみ
r+ 読み込み/書き出し
w 書き出しのみ
w+ 読み込み/書き出し
a 書き出しのみ(追記)
a+ 読み込み/書き込み(追記)

また、開いたファイルは fclose 関数で閉じる。

$fp=fopen("開きたいファイル"orパス,"モード");
fclose($fp);

ファイルの読み込み

モードに r を指定すると読み込みモードになる。

引数に指定したファイルから1行読み込むことができる fgets 関数もここで紹介。

<?php

$fp=fopen("開きたいファイル","r");
while ($line = fgets($fp)) {
echo "$line<br />";
}
fclose($fp);

?>

これで開きたいファイルの内容が改行区切りですべて表示される。

 

ちなみに、ここででてきた while 文は繰り返し処理を行うもの。

while (条件式){
実行する処理1;
実行する処理2;
}

while 文は指定した条件式が真(true)の間は繰り返す。

(どこかでまた詳しくやるかも?)

ファイルへの書き込み

モードに w を指定すると書き込みモードになる。

書き込みモードでは、 fwrite 関数でファイルの内容を書き換えることができる。

<?php

$fp = fopen("開きたいファイル", "w");
fwrite($fp, "ファイルへの書き込み内容");
fclose($fp);

?>

開きたいファイルの内容が「ファイルへの書き込み内容」になる。
開きたいファイルには、書き込み権限を与えておくこと!

ファイルへの追記

モードに a を指定すると追記モードになる。

追記モードでは、 fwrite 関数でファイルの内容に追記できる。

<?php

$fp=fopen("開きたいファイル","a");
fwrite($fp,"ファイルの追記内容");
fclose($fp);

?>

追記モードは。プログラムが実行されるたびにファイルの末尾に追記が行われる。


 

ファイルを扱う方法の中にはもっと簡単にできるものがある。

<?php

echo file_get_contents("開きたいファイル");

?>

⇒「開きたいファイル」の内容が表示される。
各行末に改行タグを付加して順に表示することができない。

<?php

file_put_contents("開きたいファイル", "ファイルへの書き込み内容");

?>

⇒「開きたいファイル」に「ファイルの書き込み内容」が書き込まれる。
内容全体を書き換えてしまうのでファイルの末尾にデータを追記することはできない。

 


〈参考にしたもの〉

PHPでのファイル書き込みとパーミッションエラー解決法

PHP Labo ファイル入出力