【PHP】ファイル入出力



基本

ファイルを扱う場合、そのファイルをオープンにする必要があり, ファイルをオープンするにはfopen関数を使います。

ファイルハンドル($fp)からファイルを操作します。
基本的な流れ
  1. ファイルを開く fopen("ファイル名", "モード")
  2. ファイルから読み込み fgets(  ) or 書き込み fwrite( 変数化したファイル, "書き込む内容" );
  3. ファイルを閉じる (fclose)
外部リンク参考サイトさん ・ファイル入出力  ・ファイル読み書き

関数

fopen 関数

引数に「開きたいファイル」と「モード」をそれぞれ指定します。

ファイルポインタ($fp)= fopen("パスを含めたファイル名", "モード")

「ファイルポインタ」は現在ファイルをどこまで読んだか書いたかを表します。

モード 動作 実際の書き方
"r" 読み出し専用$fp = fopen("開きたいファイル", "r");
"w" 書き込み専用$fp = fopen("開きたいファイル", "w");
"a" 追加書き込み専用$fp = fopen("開きたいファイル", "a");
"r+" 読み込みと書き込み
"w+" 書き込みと読み込み
"a+" 読み込みと追加書き込み

初期状態では、ファイルポインタはファイルの先頭に設定できます。

ファイルが正しくオープンされると、ファイルポインタが返される。 エラーの時は NULLが返される。

開いたファイルは fclose( ) 関数で閉じておきます。

fgets( )関数

fgets( )関数はfopen( )関数で、オープンしたファイルを1行づつ読み込みます。

$lengthを指定しない場合は、改行かEOF(End Of File)まで読み込みます。

while( ){print }構文でファイルが終わるまで読み込み、ブラウザに出力します。

外部リンク参考サイトさん  fgets( )関数使い方
fputs( )関数、fwrite( )関数

文字列を一行ずつ書き出す。

fwrite( $fp, "書き込む内容" );
file_get_contents( ) 関数

引数で指定したファイルを全て文字列として読み込みます

file_get_contents("ファイル名");

php echo file_get_contents("ファイル名");?  でechoで出力する

file_put_contents( )関数

「第1引数」で指定したファイルに「第2引数」で指定した文字列を書き込みます。

file_put_contents("書き込み先ファイル名", "ファイルへの書き込内容");

php file_put_contents("書き込み先ファイル名", "ファイルへの書き込み内容");  ファイルの内容全体を書き換える

CSVファイル

CSVファイルとはComma-Separated Valuesのこと。

データを各項目ごとにカンマで区切ったテキスト形式のファイルです。

外部リンク参考サイトさん CSVファイル読み込み

fopen("開きたいCSVファイル", "r");でCSVファイルを開く

fgetcsv( )関数を使い、開いたCSVファイルを1行ずつ読み込む
foreach( )関数を使って読み込んだ配列を変数にする

while (fgetcsv関数で1行ずつ読み込み) {foreach関数で読み込んだ配列を変数にする{printでブラウザに出力}}

while( ){ }構文でファイルが終わるまで読み込み、配列化を続ける

テーブルタグを使うか、見やすいように.(ドット) "br\n"改行タブをつけて、 print 配列名;でブラウザに出力

楽しくpc