file_get_contents

関数の概要

PHPの file_get_contents 関数は、指定したファイルやURLの内容を一括で読み取り文字列として取得するための便利な関数です。簡単にファイルの中身を読み込むことができるため、設定ファイルの読み込みやWebページのスクレイピングなど幅広い用途で使われています。

パラメータの説明

  • filename(必須): 読み込むファイルのパスまたはURLを指定します。
  • use_include_path(省略可、デフォルトは false): include_path を使用するかどうかをブール値で指定します。
  • context(省略可): ストリームコンテキストを指定します。HTTPヘッダーや認証情報など細かい制御が可能です。
  • offset(省略可): 読み込み開始位置をバイト単位で指定します。通常は省略します。
  • maxlen(省略可): 読み込む最大バイト数を指定します。指定しない場合はファイル全体を読み込みます。

戻り値

読み込んだデータを文字列として返します。何らかの理由で読み込みに失敗した場合は false が返されます。

使用例

基本的な使い方

<?php
$content = file_get_contents('sample.txt');
echo $content;
?>

上記の例では、カレントディレクトリの sample.txt ファイルの内容をすべて読み込み、それを画面に表示しています。

HTTP経由でウェブページの内容を取得する

<?php
$url = 'https://www.example.com/';
$html = file_get_contents($url);
echo $html;
?>

この例では、指定したURLのHTML内容を取得して表示しています。リモートのWebページの情報を簡単に取得できます。

ストリームコンテキストを使った例(HTTPヘッダーの追加)

<?php
$opts = [
    'http' => [
        'method' => 'GET',
        'header' => "User-Agent: PHPrn"
    ]
];
$context = stream_context_create($opts);
$content = file_get_contents('https://www.example.com/api/data', false, $context);
echo $content;
?>

この例では、HTTPヘッダーにUser-Agentを追加してリクエストを送ることで、APIなど特定のヘッダーが必要な場合に対応しています。

ファイルの一部だけを読み込む(offsetとmaxlenの利用)

<?php
$partial = file_get_contents('sample.txt', false, null, 10, 20);
echo $partial;
?>

このコードは、sample.txt の11バイト目から20バイト分だけ読み込んで表示します。大きなファイルから一部分だけ取得したいときに便利です。

関連する関数

  • fopen – ファイルを開く
  • fread – ファイルから指定したバイト数を読む
  • file_put_contents – ファイルに文字列を書き込む
  • file – ファイルの内容を1行ずつ配列で取得する

まとめ

file_get_contents はPHPでファイルやURLの内容を手軽に文字列として取得するための便利な関数です。シンプルな使い方からストリームコンテキストを利用した高度な使い方まで幅広く対応できます。初心者にも扱いやすく、実務でも非常に役立つため、ぜひ習得しておきたい関数の一つです。