【PHP】ファイル操作そんなに勉強したことなかったので、基本を勉強する
ここでのファイルポインタとは
- ファイルを操作するための変数
- ファイルを編集するための現在位置
fopen
PHP: fopen - Manual
ファイルまたはurlを開く。返り値はファイルポインタを返す。失敗した場合はfalseを返す。
fclose
PHP: fclose - Manual
ファイルを閉じる
fgets
PHP: fgets - Manual
ファイルから1行取得する
引数にファイルポインタを指定し、そのファイルから一行づつデータを取得し、文字列として返す。読み込むデータがない場合やエラーが起こった場合にfalseを返す。
<?php //開ける $fp = fopen('test.txt','r'); echo fgets($fp); //閉じる fclose($fp); ?>
fwrite
ファイルに書き込む
<?php //modeにwを指定 $fp = fopen('test.txt','w'); fwrite($fp,'書き込み!'); fclose($fp); ?>
ファイルに追加で書き込む
<?php //modeにaを指定 $fp = fopen('test.txt','a'); fwrite($fp,'追加で書き込み!'); fclose($fp); ?>
file_get_contents
PHP: file_get_contents - Manual
ファイルの全ての内容を取得する。返り値は読み込んだデータ。失敗した場合はfalseを返す。PHPは動的型付けのため失敗しなかった場合でも==を使うと思わぬ挙動となる可能性があるため条件分岐を行う際には===を使用する。
<?php $data = file_get_contents('test.txt'); //一行ずつ文字列を配列に代入 $array = explode("\n",$data); var_dump($array); //出力結果 //array(2) { [0]=> string(9) "一行目" [1]=> string(9) "二行目" } ?>
file_put_contents
PHP: file_put_contents - Manual
文字列をファイルに書き込む。この関数はfopen()、fwrite()、fclose()を使ってファイルに書き込むのと同じ。
<?php //文字列パターン file_put_contents('test.txt','こんにちは!'); //配列パターン file_put_contents('test.txt',[1,2,3,4,5]); //12345 となる //このコードだと上書きされてしまう。 ?>
fgetcsv
csvファイルから1行ずつ取得する。返り値は,で区切った配列。
<?php $fp = fopen('test.csv','r'); var_dump(fgetcsv($fp)); var_dump(fgetcsv($fp)); //array(3) { [0]=> string(6) "lebron" [1]=> string(4) "melo" [2]=> string(4) "wade" } array(3) { [0]=> string(4) "bosh" [1]=> string(5) "mario" [2]=> string(4) "cole" } fclose($fp); ?>
fputcsv
配列をcsv形式にフォーマットし、ファイルポインタに書き込む。第二引数には文字列の配列を指定する。
<?php $fp = fopen('test.csv','w'); fputcsv($fp,['a','b','c']); fclose($fp); ?>