php-doc-en/reference/filesystem/functions/file-get-contents.xml
2016-09-14 11:53:33 +00:00

262 lines
7.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.file-get-contents">
<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.
</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;
&note.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
-->