{category}

PHP - ファイル読み書き

file_get_contents()

ファイル ゲット コンテンツ(ファイルとI/O操作

意味 ファイルの内容を全て読み込む


file_get_contents()とは?

file_get_contents()は、指定したファイルの内容を全て読み込んで、その内容を文字列として返す関数です。ファイル全体を一度に読み込むため、メモリ使用量に注意が必要です。

file_get_contents()の具体的な使い方

ローカルファイルの内容を読み込む

<?php
$filename = 'example.txt';
$content = file_get_contents($filename);

if ($content !== false) {
    echo "ファイル '$filename' の内容:\n$content";
} else {
    echo "ファイル '$filename' の読み込みに失敗しました。";
}

👇出力結果

ファイル 'example.txt' の内容:
Hello, World!

この例では、'example.txt'というローカルファイルの内容を読み込んで表示しています。file_get_contents()関数は失敗するとfalseを返すので、それを確認してエラーハンドリングも行っています。

リモートファイルの内容を取得する

<?php
$url = 'https://www.example.com/robots.txt';
$content = file_get_contents($url);

if ($content !== false) {
    echo "$url の内容:\n$content";
} else {
    echo "$url からのデータ取得に失敗しました。";
}

👇出力結果

https://www.example.com/robots.txt の内容:
User-agent: *
Disallow: /private/
Allow: /public/

この例では、指定したURLのリモートファイル(この場合はrobots.txt)の内容を取得しています。これはWebスクレイピングやAPIからのデータ取得などに使用できます。ただし、allow_url_fopen設定が有効である必要があります。

file_get_contents()に関するよくある質問

Q. 大きなファイルの読み込みは安全ですか?
A. file_get_contents()は全内容を一度にメモリに読み込むため、非常に大きなファイルの場合はメモリ不足になる可能性があります。大きなファイルを扱う場合は、fopen()とfread()を使用して少しずつ読み込むことをお勧めします。
Q. リモートファイルも読めますか?
A. はい、file_get_contents()はHTTPやFTPなどのURLも指定でき、リモートファイルの内容を取得できます。ただし、allow_url_fopen設定が有効である必要があります。
Q. ファイルが存在しない場合の処理は?
A. ファイルが存在しない場合、file_get_contents()はfalseを返し、警告が発生します。エラーを防ぐには、file_exists()で事前にファイルの存在を確認するか、@演算子を使用してエラーを抑制することができます。

file_get_contents()が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのfile_get_contents()やglob()、unlink()、move_uploaded_file()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

glob()

パターンに一致するファイル検索

種類: ディレクトリ操作

unlink()

ファイルの削除

種類: ファイル操作

move_uploaded_file()

アップロードファイルの移動

種類: ファイルアップロード

time()

現在のUNIXタイムスタンプ

種類: 日付時間関数

set_error_handler()

カスタムエラーハンドラの設定

種類: エラーハンドリング