PHPのfile_put_contents()関数を使用しファイルを書き込んでみます。
file_put_contents()関数を使用することで、ファイルにデータ,文字列を書き込むことができます。
また、file_put_contents()関数は、ファイルを開かなくてもファイルにデータ,文字列を書き込むことができます。
■基本的な構文
file_put_contents(filename, data, mode, context)
fileは、データを書き込む先のファイルのパスを指定します。もしファイルが存在しない・用意されていない場合は、この関数が自動的にファイルを作成します。
dataは、ファイルに書き込むデータを指定します。
modeは、ファイルの開き方や書き込み方を指定します。オプションです。
contextは、ファイルハンドル(どのファイルを処理しているかを管理するための名前)のコンテキストを指定します。オプションです。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■file_put_contents()関数を使用しファイルを書き込む
では、早速file_put_contents()関数を使用しファイルを書き込んでみます。
■コード
<html lang="ja">
<head>
<title>file_put_contents()関数を使用しファイルを書き込む</title>
</head>
<body>
<?php
$file = "C:/wamp64/www/project/test.txt";
$data = "今日は快晴です。お出かけしたくなります。";
file_put_contents($file, $data) or die("エラー:ファイルの書き込みができません。");
echo"ファイルへのデータ書き込みが成功しました";
?>
</body>
</html>
今回はfileという変数を宣言し、その中でtest.txtというファイルを指定し格納します。
次にdataという変数を宣言し、その中にファイルへのデータを書き込みますので、データとして、今回は日本語の文字列を格納します。
格納後、file_put_contents()関数を使用し、file変数内のファイルを指定します。これで書き込みが行われます。fopen()関数のように、ファイルを開く必要はありません。さらにファイルへデータを書き込む際にdie()関数でエラーが発生した場合の処理を指定します。
最後に、echo文を使用し、ファイルへのデータ書き込みが成功したことを出力します。
なお、test.txtというファイルの中身を開きデータを書き込みますが、今回はあらかじめ空のテキストファイルを用意しています。
今回はファイルを用意しましたが、ファイルが既に存在する・用意されている場合、PHPはデフォルトでそのファイルを上書きします。つまり、ファイル内にデータが存在する場合は上書きされてしまうため、消去となりますので、ご注意ください。
■実行
では、このスクリプトを「write_to_file_2.php」という名前で保存し、実行させてみます。
実行させてみると、「ファイルへのデータ書き込みが成功しました」と出力されました。
出力された後に、空だったテキストファイルを確認すると、file_put_contents()関数を使用したことで、データ(日本語の文字列)が書き込まれていることが確認できました。
コメント