Kintarou'sBlog

プログラミング学習中。学習内容のアウトプットや読書で学んだことなど随時投稿!

【PHP】ファイルを操作する関数

こんにちは😊Kintarouです。

現在エンジニア転職を目指してTECH CAMPにてプログラミング学習中です👨‍🎓
夢はフリーランスエンジニアになって働く人が働きやすいシステムを作ること!
と、愛する妻と海外移住すること🗽

プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry


今回参考にさせて頂いたサイト様🙇‍♂️
dotinstall.com


ディレクトリにあるファイルを開ける

fopenで行います。もし指定のファイルがない場合は新しく作られます。 ファイルはファイルポインタという特殊な変数で返されます。

<?php

#'w'とすることで書き込みモードに出来ます。書き込みモードは上書きとなるので注意です。
#追記したい場合はappendの'a'とすればOKです。
$fp = fopen('example.txt', 'w');

#fwite関数でexample.txtに書き込みを行います。\nは改行です。
fwrite($fp, "text\n");

#fclose関数で書き込みを終える事を明示します。
fclose($fp);

ファイルのデータを読み込む

先ほどのファイルを読み込んでみます。

<?php

#filesizeで取得したサイズ分をfreadで返しています。
$fp = fopen('example.txt', 'r');
$contents = fread($fp, filesize('example.text'));
fclose($fp);

echo $contents;

#=>text

#また、1行だけ読み込みたい場合はfgetsを使います。
$fp = fopen('example.txt', 'r');
$line = fgets($fp);
fclose($fp);

echo $line;

#=>text

fopenを使わずファイルを作成し、操作する

今度はfopenを使わずにfile_put_contents関数を使ってファイルを作成します。
※前回までのexample.txtは削除しました。

<?php

#先に書き込む内容を決めます。
$contents = "text1\ntext2\ntext3\n";

#作成するファイル名と書き込む内容を渡します。
file_put_contents('example.txt', $contents);


#作成したファイルの内容を取得します。
$contents = file_get_contents('example.txt');
echo $contents;

#=>text1
#=>text2
#=>text3

#今度はfile関数でファイルの内容を1行ずつの配列の要素として読み込みます
#FILE_IGNORE_NEW_LINESと記述する事で\nを無視します。
$lines = file('example.txt', FILE_IGNORE_NEW_LINES);
var_dump($lines);

#=>array(3) {
#=>  [0]=>
#=>  string(5) "text1"
#=>  [1]=>
#=>  string(5) "text2"
#=>  [2]=>
#=>  string(5) "text3"
#=>}

以上、どなたかの参考になれば幸いです😊