<?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> <refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.file-get-contents" xmlns:xlink="http://www.w3.org/1999/xlink"> <refnamediv> <refname>file_get_contents</refname> <refpurpose>Reads entire file into a string</refpurpose> </refnamediv> <refsect1 role="description"> &reftitle.description; <methodsynopsis> <type>string</type><methodname>file_get_contents</methodname> <methodparam><type>string</type><parameter>filename</parameter></methodparam> <methodparam choice="opt"><type>bool</type><parameter>use_include_path</parameter><initializer>&false;</initializer></methodparam> <methodparam choice="opt"><type>resource</type><parameter>context</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>offset</parameter><initializer>0</initializer></methodparam> <methodparam choice="opt"><type>int</type><parameter>maxlen</parameter></methodparam> </methodsynopsis> <para> This function is similar to <function>file</function>, except that <function>file_get_contents</function> returns the file in a <type>string</type>, starting at the specified <parameter>offset</parameter> up to <parameter>maxlen</parameter> bytes. On failure, <function>file_get_contents</function> will return &false;. </para> <para> <function>file_get_contents</function> 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. </para> <note> <para> If you're opening a URI with special characters, such as spaces, you need to encode the URI with <function>urlencode</function>. </para> </note> </refsect1> <refsect1 role="parameters"> &reftitle.parameters; <para> <variablelist> <varlistentry> <term><parameter>filename</parameter></term> <listitem> <para> Name of the file to read. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>use_include_path</parameter></term> <listitem> <note> <para> As of PHP 5 the <constant>FILE_USE_INCLUDE_PATH</constant> constant can be used to trigger <link linkend="ini.include-path">include path</link> search. This is not possible if <link linkend="functions.arguments.type-declaration.strict">strict typing</link> is enabled, since <constant>FILE_USE_INCLUDE_PATH</constant> is an <type>int</type>. Use &true; instead. </para> </note> </listitem> </varlistentry> <varlistentry> <term><parameter>context</parameter></term> <listitem> <para> A valid context resource created with <function>stream_context_create</function>. If you don't need to use a custom context, you can skip this parameter by &null;. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>offset</parameter></term> <listitem> <para> The offset where the reading starts on the original stream. Negative offsets count from the end of the stream. </para> <para> Seeking (<parameter>offset</parameter>) is not supported with remote files. Attempting to seek on non-local files may work with small offsets, but this is unpredictable because it works on the buffered stream. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>maxlen</parameter></term> <listitem> <para> Maximum length of data read. The default is to read until end of file is reached. Note that this parameter is applied to the stream processed by the filters. </para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> The function returns the read data &return.falseforfailure;. </para> &return.falseproblem; </refsect1> <refsect1 role="errors"> &reftitle.errors; <para> An <constant>E_WARNING</constant> level error is generated if <parameter>filename</parameter> cannot be found, <parameter>maxlength</parameter> is less than zero, or if seeking to the specified <parameter>offset</parameter> in the stream fails. </para> </refsect1> <refsect1 role="examples"> &reftitle.examples; <para> <example> <title>Get and output the source of the homepage of a website</title> <programlisting role="php"> <![CDATA[ <?php $homepage = file_get_contents('http://www.example.com/'); echo $homepage; ?> ]]> </programlisting> </example> <example> <title>Searching within the include_path</title> <programlisting role="php"> <![CDATA[ <?php // <= PHP 5 $file = file_get_contents('./people.txt', true); // > PHP 5 $file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH); ?> ]]> </programlisting> </example> <example> <title>Reading a section of a file</title> <programlisting role="php"> <![CDATA[ <?php // Read 14 characters starting from the 21st character $section = file_get_contents('./people.txt', NULL, NULL, 20, 14); var_dump($section); ?> ]]> </programlisting> &example.outputs.similar; <screen> <![CDATA[ string(14) "lle Bjori Ro" ]]> </screen> </example> <example> <title>Using stream contexts</title> <programlisting role="php"> <![CDATA[ <?php // Create a stream $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Accept-language: en\r\n" . "Cookie: foo=bar\r\n" ) ); $context = stream_context_create($opts); // Open the file using the HTTP headers set above $file = file_get_contents('http://www.example.com/', false, $context); ?> ]]> </programlisting> </example> </para> </refsect1> <refsect1 role="changelog"> &reftitle.changelog; <para> <informaltable> <tgroup cols="2"> <thead> <row> <entry>&Version;</entry> <entry>&Description;</entry> </row> </thead> <tbody> <row> <entry>7.1.0</entry> <entry> Support for negative <parameter>offset</parameter>s has been added. </entry> </row> <row> <entry>5.1.0</entry> <entry> Added the <parameter>offset</parameter> and <parameter>maxlen</parameter> parameters. </entry> </row> </tbody> </tgroup> </informaltable> </para> </refsect1> <refsect1 role="notes"> &reftitle.notes; ¬e.bin-safe; &tip.fopen-wrapper; &warn.ssl-non-standard; </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><function>file</function></member> <member><function>fgets</function></member> <member><function>fread</function></member> <member><function>readfile</function></member> <member><function>file_put_contents</function></member> <member><function>stream_get_contents</function></member> <member><function>stream_context_create</function></member> <member><link linkend="reserved.variables.httpresponseheader">$http_response_header</link></member> </simplelist> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"~/.phpdoc/manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->