ファイル全体を読み込んで配列に格納する

# file

(PHP 4, PHP 5, PHP 7, PHP 8)

file — ファイル全体を読み込んで配列に格納する

### 説明

function file(string `$filename`, int `$flags` = 0, ?resource `$context` = `null`): array|false

ファイル全体を配列に読み込みます。

> 注意:

> ファイルの内容を文字列として返すには file_get_contents() を使用します。

### パラメータ

`filename`

  ファイルへのパス。

  ヒント

  fopen wrappers が有効の場合、この関数のファイル名として URL を使用することができます。ファイル名の指定方法に関する詳細は fopen() を参照ください。 サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、 提供される定義済み変数などの情報がまとめられています。

`flags`

  オプションのパラメータ `flags` は、以下の定数のうちのひとつ、あるいは複数の組み合わせとなります。

  `FILE_USE_INCLUDE_PATH`
    include_path のファイルを探します。
  `FILE_IGNORE_NEW_LINES`
    配列の各要素の最後の改行を省略します。
  `FILE_SKIP_EMPTY_LINES`
    空行を読み飛ばします。
  `FILE_NO_DEFAULT_CONTEXT`
    デフォルトのストリームコンテキストを使いません。
`context`
  ストリームコンテキストリソース

### 戻り値

ファイルを配列に入れて返します。 配列の各要素はファイルの各行に対応します。改行記号はついたままとなります。 失敗すると file() は `false` を返します。

> 注意:

> `FILE_IGNORE_NEW_LINES` を指定しない限り、 配列に取り込まれた各行は行末文字も含みます。

> 注意: マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、 `PHP` が行末を認識できないという問題が発生した場合、 実行時の設定オプションauto_detect_line_endings を有効にする必要が生じるかもしれません。

### エラー / 例外

PHP 8.3.0 以降では、`flags` に不正な値、 たとえば `FILE_APPEND` のような値が含まれていた場合、 ValueError がスローされます。

ファイルが存在しない場合は `E_WARNING` レベルのエラーが発生します。

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | `flags` に不正な値が含まれている場合、 ValueError がスローされるようになりました。

### 例

例1 file() の例

    <?php
    // ファイルの内容を配列に取り込みます。
    // この例ではHTTPを通してURL上のHTMLソースを取得します。
    $lines = file('http://www.example.com/');

    // 配列をループしてHTMLをHTMLソースとして表示し、行番号もつけます。
    foreach ($lines as $line_num => $line) {
        echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
    }

    // オプションのパラメータを使う
    $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    ?>

### 注意

警告

IIS のような、いくつかの標準に 対応してない Web サーバーは、PHP に警告を発生させるような手順でデータを送信します。 このようなサーバーを使用する場合は、 error_reporting を警告を発生しないレベルまで小さくする必要があります。 PHP では、`https://` ラッパーでストリームをオープンする際に バグがある IIS サーバーソフトウエアを検出することができ、この警告を抑制することができます。 あなたが `ssl://` ソケットを作成するために fsockopen() を使用している場合、 自らこの警告を検出し、抑制する必要があります。

### 参考

- file_get_contents() - ファイルの内容を全て文字列に読み込む
- readfile() - ファイルを出力する
- fopen() - ファイルまたは URL をオープンする
- fsockopen() - インターネット接続もしくは Unix ドメインソケット接続をオープンする
- popen() - プロセスへのファイルポインタをオープンする
- include - include
- stream_context_create() - ストリームコンテキストを作成する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open