たけるのプログラミング

作ったものとか、気ままにアップします。

【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: fwrite - Manual

ファイルに書き込む

<?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

PHP: fgetcsv - Manual

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

PHP: fputcsv - Manual

配列をcsv形式にフォーマットし、ファイルポインタに書き込む。第二引数には文字列の配列を指定する。

<?php
$fp = fopen('test.csv','w');
fputcsv($fp,['a','b','c']);
fclose($fp);
?>