関数・クラス解説

file_get_contents

version:PHP 4 >= 4.3.0, PHP 5, PHP 7 (公式)

ファイルの内容を全て文字列に読み込む

公式リファレンス

書式

file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) : string|false

説明

この関数は file() と似ていますが、 offset で指定した場所から開始し maxlen バイト分だけ ファイルの内容を文字列に読み込むという点が異なります。 失敗した場合、file_get_contents() は FALSE を返します。

file_get_contents()はファイルの内容を文字列に読み込む 方法として好ましいものです。もしOSがサポートしていれば パフォーマンス向上のためにメモリマッピング技術が使用されます。

注意:

空白のような特殊な文字を有する URI をオープンする場合には、 urlencode() でその URI をエンコードする必要があります。

パラメータ

filename
データを読み込みたいファイルの名前。
use_include_path
注意: 定数 FILE_USE_INCLUDE_PATH を使用して インクルードパス から探すことができます。 この定数を使うことは、強い型付け が有効になっている場合は不可能です。なぜなら、 FILE_USE_INCLUDE_PATH が int だからです。 TRUE を代わりに使いましょう。
context
stream_context_create() で作成したコンテキストリソース。 独自のコンテキストを使用する必要がない場合は、このパラメータに NULL を指定します。
offset
元のストリーム上で、読み込みを開始するオフセット位置。 負のオフセットは、ストリームの末尾からのオフセットと解釈されます。 リモートファイルに対するシーク (offset 指定) はサポートしていません。 オフセットが小さい場合はリモートファイルでのシークがうまくいくこともありますが、 これはバッファリングされたストリーム上で動作しているだけのことです。
maxlen
読み込むデータの最大バイト数。 デフォルトは、ファイル終端に達するまで読み込みます。 このパラメータは、フィルタが処理した後のストリームに適用されることに注意しましょう。

返値

読み込んだデータを返します。失敗した場合に FALSE を返します。 警告この関数は論理値FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。詳細については 論理値のセクションを参照してください。この関数の返り値を調べるには===演算子 を使用してください。

エラー

filename が見つからない場合、maxlength がゼロより小さい場合、あるいはストリーム内での指定した offset へのシークが失敗した場合に E_WARNING レベルのエラーが発生します。

注意

注意: この関数はバイナリデータに対応しています。
ヒントfopen wrappers が有効の場合、この関数のファイル名としてURL を使用することができます。ファイル名の指定方法に関する詳細はfopen() を参照ください。サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、提供される定義済み変数などの情報がまとめられています。 警告IIS のような、いくつかの標準に対応してない Web サーバーは、PHP に警告を発生させるような手順でデータを送信します。このようなサーバーを使用する場合は、error_reporting を警告を発生しないレベルまで小さくする必要があります。PHP では、https:// ラッパーでストリームをオープンする際にバグがある IIS サーバーソフトウエアを検出することができ、この警告を抑制することができます。あなたが ssl:// ソケットを作成するために fsockopen() を使用している場合、自らこの警告を検出し、抑制する必要があります。警告この関数は論理値FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。詳細については 論理値のセクションを参照してください。この関数の返り値を調べるには===演算子 を使用してください。

更新履歴

バージョン 説明
7.1.0 負の offset をサポートするようになりました。

サンプル

例1 とあるウェブサイトのホームページのソースの取得と出力

$homepage = file_get_contents('http://www.example.com/'); echo $homepage;

例2 include_path の検索

// 厳密な型検査が有効な場合。つまり、declare(strict_types=1) の場合 $file = file_get_contents('./people.txt', true); // 厳密な型検査が有効でない場合 $file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);

例3 ファイルの一部の読み込み

// 21 文字目から 14 文字ぶん読み込みます $section = file_get_contents('./people.txt', FALSE, NULL, 20, 14); var_dump($section);

上の例の出力は、たとえば以下のようになります。

string(14) "lle Bjori Ro"

例4 ストリームコンテキストの使用

// ストリームを作成します $opts = array(   'http'=>array(     'method'=>"GET",     'header'=>"Accept-language: en\r\n" .               "Cookie: foo=bar\r\n"   ) ); $context = stream_context_create($opts); // 上で設定した HTTP ヘッダを使用してファイルをオープンします $file = file_get_contents('http://www.example.com/', false, $context);

参考

  • file() - ファイル全体を読み込んで配列に格納する
  • fgets() - ファイルポインタから 1 行取得する
  • fread() - バイナリセーフなファイルの読み込み
  • readfile() - ファイルを出力する
  • file_put_contents() - データをファイルに書き込む
  • stream_get_contents() - 残りのストリームを文字列に読み込む
  • stream_context_create() - ストリームコンテキストを作成する
  • $http_response_header
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール