1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【PHP】ファイル操作

Posted at

ファイルの基本的な操作についての覚書。

#ファイル作成・書き込み

ファイルの作成・書き込みには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
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?