PHP

【PHPの基礎】PHPにおけるファイルの読み書きの方法をマスターしよう!

今回はPHPにおけるファイルの読み書きの方法について説明します。

PHPは、ファイルの読み書きを行うための多数の関数を提供しています。これらの関数を使用することで、テキストファイル、CSVファイル、JSONファイル、XMLファイルなど、さまざまな種類のファイルを処理することができます。

実際の開発でも大変よく使う方法なので是非マスターしましょう!

独学がつらくなった方は下記をご覧ください!

>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!

fopen関数を使ったファイルの読み込み

ファイルの読み込みには、fopen関数を使用します。この関数は指定されたファイルを開いて、ファイルポインタを返します。ファイルポインタは、後でファイルからデータを読み込むために使用されます。

ファイルポインタは、ファイルを読み書きするために使用される仮想的なポインタです。ファイルポインタを使用することで、ファイル内の任意の位置からデータの読み書きを開始することができます。

以下は、fopen関数を使用してファイルを開く例です。

$filename = 'sample.txt';
$file = fopen($filename, 'r');

上記の例では、sample.txtという名前のファイルを読み込みモードで開いています。

fopen関数の第1引数には、読み込むファイルの名前を指定します。第2引数には、ファイルを開くモードを指定します。rは、読み込みモードを表します。他にも、書き込みモード、追記モード、バイナリモードなどがあります。

ファイルを開いた後は、fgets関数を使用します。fgets関数はファイルから1行ずつデータを読み込むことができます。以下は、fgets関数を使用してファイルから1行ずつデータを読み込む例です。

while (!feof($file)) {
    $line = fgets($file);
    echo $line;
}

上記の例では、feof関数を使用して、ファイルの終端に達するまで繰り返し処理を行います。fgets関数は、ファイルから1行ずつデータを読み込みます。読み込んだデータは、$lineに代入され、echo文で出力されます。

while文の詳細については下記の記事を参考にしてください!

>>【PHPの基礎】while文をマスターしよう!

ファイルを読み込んだ後は、fclose関数を使用して、ファイルを閉じることができます。以下は、fclose関数を使用してファイルを閉じる例です。

fclose($file);

CSVファイルの読み書き

CSVファイルは、コンマやタブなどで区切られたデータを含むテキストファイルです。PHPでは、fgetcsv関数を使用して、CSVファイルからデータを読み込むことができます。また、fputcsv関数を使用して、CSVファイルにデータを書き込むことができます

以下は、fgetcsv関数を使用してCSVファイルからデータを読み込む例です。

$filename = 'sample.csv';
$file = fopen($filename, 'r');
while (($data = fgetcsv($file)) !== false) {
    print_r($data);
}
fclose($file);

上記の例では、sample.csvという名前のCSVファイルを読み込みモードで開いています。fgetcsv関数を使用して、CSVファイルから1行ずつデータを読み込みます。読み込んだデータは、配列として$dataに代入され、print_r関数で出力されます。

以下は、fputcsv関数を使用してCSVファイルにデータを書き込む例です。

$filename = 'output.csv';
$file = fopen($filename, 'w');
$data = array(
    array('Name', 'Age', 'City'),
    array('John', '30', 'New York'),
    array('Alice', '25', 'Los Angeles'),
    array('Bob', '35', 'Chicago'),
);
foreach ($data as $row) {
    fputcsv($file, $row);
}
fclose($file);

上記の例では、output.csvという名前のCSVファイルを書き込みモードで開いています。$dataという配列に、書き込むデータを格納しています。foreachループを使用して、配列の要素を1つずつ取り出し、fputcsv関数でCSVファイルに書き込んでいます。

foreach構文に関しては下記の記事を参考にしてください!

>>【PHPの基礎】foreach構文をマスターしよう!

JSONファイルの読み書き

JSONファイルは、JavaScript Object Notationの略で、JavaScriptのオブジェクトを表すためのテキストフォーマットです。

PHPでは、json_encode関数を使用して、PHPの配列をJSONフォーマットに変換し、json_decode関数を使用して、JSONフォーマットのデータをPHPの配列に変換することができます。

以下は、json_encode関数を使用してPHPの配列をJSONフォーマットに変換する例です。

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York',
);
$json = json_encode($data);

上記の例では、$dataという配列を定義し、json_encode関数でJSONフォーマットに変換しています。変換後のデータは、$jsonに代入されます。

以下は、json_decode関数を使用してJSONフォーマットのデータをPHPの配列に変換する例です。

$json = '{"name":"John","age":30,"city":"New York"}';
$data = json_decode($json, true);
print_r($data);

上記の例では、$jsonにJSONフォーマットのデータを定義し、json_decode関数でPHPの配列に変換しています。第2引数にtrueを指定することで、戻り値を連想配列として取得することができます。変換後のデータは、print_r関数で出力されます。

ファイルの削除

ファイルを削除するには、unlink関数を使用します。以下は、unlink関数を使用してファイルを削除する例です。

$filename = 'output.txt';
unlink($filename);

上記の例では、output.txtという名前のファイルを削除しています。unlink()関数に削除するファイル名を指定することで、指定したファイルを削除することができます。

ファイルの存在を確認する

ファイルの存在を確認するには、file_exists関数を使用します。以下は、file_exists関数を使用してファイルの存在を確認する例です。

$filename = 'output.txt';
if (file_exists($filename)) {
    echo 'File exists';
} else {
    echo 'File does not exist';
}

上記の例では、output.txtという名前のファイルが存在するかどうかを確認しています。file_exists関数がtrueを返す場合は、ファイルが存在することを示し、falseを返す場合は、ファイルが存在しないことを示します

独学でツラくなった方へ

私は独学でプログラミングを学んで、実際に初めて稼げるようになるまで2年以上かかりました

当時は意地でも独学で学んでやる!と意気込んでいましたが、今思えばスクールに通うことで稼ぐまでのスピードはもう少し短縮できたのではと思っています。

効率よくプログラミングを身につけたい方は是非参考にしてみて下さい!

まとめ

今回説明した内容

✅PHPにおけるファイルの読み書きの方法

今回はPHPにおけるファイルの読み書きについて、基本的な操作について解説しました。これらの操作を組み合わせることで、より高度なファイル操作が可能になります。

今回で是非ますたーしましょう!