ファイルの基本的な操作についての覚書。
#ファイル作成・書き込み
ファイルの作成・書き込みにはfile_put_contents
を使います。
file_put_contents("./news.txt","aaa");
第1引数にはファイルを配置する場所(ファイルパス)を指定し、第2引数には書き込む内容を指定します。
実行すると自動的にnews.txtが作成されaaaが書き込まれているのが確認できます。
file_put_contents
は処理に失敗すると「false」が返ってくるので、if構文で下記のようにすることもできます。
$success = file_put_contents("./news.txt","aaa");
if($success) {
echo "書き込み成功";
}else{
echo "書き込み失敗";
}
今回は自分のパソコン内で試しているのでドキュメントルートにnews.txtを保存しましたが、外部サーバーを使う場合には注意しなければなりません。
以下のアドレスを叩くとnews.txtの中身が丸見えです。
http://ドメイン名/news.txt
ドキュメントルートに保存したファイルはWebブラウザで閲覧できてしまうので、通常ファイルはドキュメントルートの外に保存します。
file_put_contents("./news.txt","aaa")
//↓ドキュメントルート外に保存
file_put_contents("../test/news.txt","aaa")
##ファイル読み込み
ファイルを読み込むときはfile_get_contents
を使います。
先ほど作成したファイルを読み込んでみます。
$data = file_get_contents("../test/news.txt");
echo $data;
実行すると、先ほど書き込んだ「aaa」が表示されることを確認できます。
#ファイル読み込みと表示を同時に行う
ファイルを読み込んで画面にそのまま表示するとき、先ほどのように読み込み→表示とステップを踏むのもいいですが、それを一度に行える関数が用意されており、下記のように書き換えることができます。
$data = file_get_contents("../test/news.txt");
echo $data;
//↓ readfileで一気に行う
readfile("../test/news.txt");
#ファイルに追記
既存のファイルに追記する場合、下記のようにします。
$data = file_get_contents("../test/news.txt");
$data .= "<br>bbb";
file_put_contents("../test/news.txt",$data);
readfile("../test/news.txt");
まずファイルを読み込んで、「.=」で内容を付けたしました。
「.=」は文字列連結を省略した書き方で、次の書き方と同義です。
$data = $doc . "<br>bbb";
そしてfile_put_contentsで上書き保存をします。
実行した結果、下記のように表示されることが確認できます。
aaa
bbb