PHPから外部ファイルに対して
内容を読み込んだり、書き込んだりする方法です。
ファイルの内容をまとめて読み込む
<?php $fileStr = file_get_contents( "file_path" ); ?>
解説
指定したファイルの内容を
まとめて取得出来ます。
取得に成功した場合は
内容をString型に保持し、
取得に失敗した場合は
falseの値を保持します。
ファイルの内容を1行づつ読み込む①
<?php $fileAry= file( "file_path" ); ?>
解説
指定したファイルの内容を
1行づつ取得します。
取得に成功した場合は
1行づつ配列に格納し、
取得に失敗した場合は
falseの値を保持します。
ファイルの内容を1行づつ読み込む②
<?php $fp = fopen( "file_path" , 'r' ); if( $fp ) { // ファイルをロック if( flock( $fp , LOCK_SH ) ) { while( !feof( $fp ) ) { $buffer = fgets( $fp ); print( $buffer ); } flock( $fp , LOCK_UN ); } else{ // ファイルのロックに失敗した時の処理 } } ?>
解説
指定したファイルの内容を
1行づつ取得します。
最初に関数[fopen]を利用し、
対象ファイルのポインタを生成します。
別プログラムから編集されないように
ファイルをロックします。
関数[feof]はファイルは対象にポインタが
EOF(File of End)、ファイルの終端に
達した時のみTRUEを返します。
関数[fgets]でファイルのラインを取得します。
ファイルに書き込み(上書き)
<?php $fp = fopen( "file_path" , 'w' ); if( $fp ) { // ファイルをロック if( flock( $fp , LOCK_SH ) ) { fwrite( $fp , "Write Text..." ) flock( $fp , LOCK_UN ); } else{ // ファイルのロックに失敗した時の処理 } } ?>
解説
指定したファイルの内容を上書きします。
最初に関数[fopen]を利用し、
対象ファイルのポインタを生成します。
別プログラムから編集されないように
ファイルをロックします。
関数[fwrite]でファイルに上書きします。
※成功時はTRUE、失敗時はFALSEを返します。
ファイルに書き込み(追記)
<?php $fp = fopen( "file_path" , 'a+' ); if( $fp ) { // ファイルをロック if( flock( $fp , LOCK_SH ) ) { fwrite( $fp , "Write Text..." ) flock( $fp , LOCK_UN ); } else{ // ファイルのロックに失敗した時の処理 } } ?>
解説
指定したファイルに追記を行います。
最初に関数[fopen]を利用し、
対象ファイルのポインタを生成します。
別プログラムから編集されないように
ファイルをロックします。
関数[fwrite]でファイルに追記します。
※成功時はTRUE、失敗時はFALSEを返します。