# file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents — Reads entire file into a string

### Description

string file_get_contents ( string `$filename` [, int `$flags` [, resource `$context` [, int `$offset` [, int `$maxlen` ]]]] )

This function is similar to file(), except that file_get_contents() returns the file in a string, starting at the specified `offset` up to `maxlen` bytes. On failure, file_get_contents() will return `FALSE`.

file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance.

> Note: If you're opening a URI with special characters, such as spaces, you need to encode the URI with urlencode().

### Parameters

`filename`

  Name of the file to read.

`flags`
  Warning

  For all versions prior to PHP 6, this parameter is called `use_include_path` and is a bool. The `flags` parameter is only available since PHP 6. If you use an older version and want to search for `filename` in the include path, this parameter must be `TRUE`. Since PHP 6, you have to use the `FILE_USE_INCLUDE_PATH` flag instead.

  The value of `flags` can be any combination of the following flags (with some restrictions), joined with the binary OR (|) operator.

  Available flags
  Flag | Description
  --- | ---
  `FILE_USE_INCLUDE_PATH` | Search for `filename` in the include directory. See include_path for more information.
  `FILE_TEXT` | If unicode semantics are enabled, the default encoding of the read data is UTF-8. You can specify a different encoding by creating a custom context or by changing the default using stream_default_encoding(). This flag cannot be used with `FILE_BINARY`.
  `FILE_BINARY` | With this flag, the file is read in binary mode. This is the default setting and cannot be used with `FILE_TEXT`.

`context`

  A valid context resource created with stream_context_create(). If you don't need to use a custom context, you can skip this parameter by `NULL`.

`offset`

  The offset where the reading starts.

`maxlen`

  Maximum length of data read.

### Return Values

The function returns the read data or `FALSE` on failure.

### ChangeLog

Version | Description
--- | ---
5.0.0 | Added context support.
5.1.0 | Added the `offset` and `maxlen` parameters.
6.0.0 | The `use_include_path` parameter was replaced by the `flags` parameter.

### Notes

> Note: This function is binary-safe.

Tip

You can use a URL as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and List of Supported Protocols/Wrappers for a list of supported URL protocols.

Warning

When using SSL, Microsoft IIS will violate the protocol by closing the connection without sending a close_notify indicator. PHP will report this as "SSL: Fatal Protocol Error" when you reach the end of the data. To workaround this, you should lower your error_reporting level not to include warnings. PHP 4.3.7 and higher can detect buggy IIS server software when you open the stream using the https:// wrapper and will suppress the warning for you. If you are using fsockopen() to create an ssl:// socket, you are responsible for detecting and suppressing the warning yourself.

### See Also

- file()
- fgets()
- fread()
- readfile()
- file_put_contents()
- stream_get_contents()
- stream_context_create()