Files
doc-fr/reference/filesystem/functions/file-get-contents.xml
T
Sergey Panteleev 75275938e0 More stub sync with English (#144)
Co-authored-by: George Peter Banyard <girgias@php.net>
2021-12-25 17:31:27 +00:00

282 lines
8.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ea62fb83196997032641b50fe44420305466195e Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<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>Lit tout un fichier dans une chaîne</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></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 class="union"><type>resource</type><type>null</type></type><parameter>context</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>offset</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Identique à la fonction <function>file</function>, hormis le fait que
<function>file_get_contents</function> retourne le fichier
<parameter>filename</parameter> dans une chaîne, à partir
de la position <parameter>offset</parameter>, et jusqu'à
<parameter>length</parameter> octets.
En cas d'erreur, <function>file_get_contents</function> retourne
&false;.
</para>
<para>
<function>file_get_contents</function> est la façon recommandée pour lire
le contenu d'un fichier dans une &string;. Elle utilisera un buffer en
mémoire si ce mécanisme est supporté par votre système, afin d'améliorer
les performances.
</para>
<note>
<para>
Si vous ouvrez une URI avec des caractères spéciaux, comme des espaces, vous
devez encoder cette URI avec la fonction <function>urlencode</function>.
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
Nom du fichier à lire.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>use_include_path</parameter></term>
<listitem>
<note>
<para>
La constante <constant>FILE_USE_INCLUDE_PATH</constant>
peut être utilisée pour déclencher la recherche dans le
<link linkend="ini.include-path">chemin d'inclusion</link>.
Ceci est impossible si <link
linkend="language.types.declarations.strict">strict typing</link>
est activé, car <constant>FILE_USE_INCLUDE_PATH</constant> est un
<type>int</type>. Utilisez &true; à la place.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
Une ressource de contexte valide, créée avec la fonction
<function>stream_context_create</function>. Si vous n'avez
pas besoin d'utiliser un contexte particulier, vous pouvez
ignorer ce paramètre en affectant la valeur &null;.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
La position à partir de laquelle on commence à lire dans le flux original.
Une position négative compte à partir de la fin du flux.
</para>
<para>
Le déplacement dans le fichier (<parameter>offset</parameter>) n'est
pas supporté sur des fichiers distants. Si vous tentez de vous déplacer
dans un fichier qui n'est pas un fichier local peut fonctionner sur
les petits déplacements, mais le comportement peut ne pas être attendu
car le processus utilise le flux du buffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
La taille maximale des données à lire. Le comportement par défaut est de
lire jusqu'à la fin du fichier. Ce paramètre s'applique sur le flux traité
par les filtres.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne les données lues &return.falseforfailure;.
</para>
&return.falseproblem;
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Émet une alerte de type <constant>E_WARNING</constant> si,
<parameter>filename</parameter> ne peut être trouvé, si le
paramètre <parameter>length</parameter> est plus petit que zéro,
ou si le déplacement à la position <parameter>offset</parameter>
spécifié dans le flux échoue.
</para>
<para>
Quand <function>file_get_contents</function> est appelé sur un dossier,
une erreur de niveau <constant>E_WARNING</constant> est généré sur Windows,
et à partir de PHP 7.4 sur les autres systèmes d'exploitation aussi.
</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>8.0.0</entry>
<entry>
<parameter>length</parameter> est désormais nullable.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
Ajout du support pour des positions <parameter>offset</parameter> négative.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Lit et affiche le code HTML d'un site Web</title>
<programlisting role="php">
<![CDATA[
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
]]>
</programlisting>
</example>
<example>
<title>Recherche un fichier dans le include_path</title>
<programlisting role="php">
<![CDATA[
<?php
// Si le typage strict est activé c.à.d. declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// Sinon
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>
]]>
</programlisting>
</example>
<example>
<title>Lit une section d'un fichier</title>
<programlisting role="php">
<![CDATA[
<?php
// Lit 14 caractères à partir du 21ème caractère
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
string(14) "lle Bjori Ro"
]]>
</screen>
</example>
<example>
<title>Utilisation des contextes de flux</title>
<programlisting role="php">
<![CDATA[
<?php
// Création d'un flux
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Accès à un fichier HTTP avec les entêtes HTTP indiqués ci-dessus
$file = file_get_contents('http://www.example.com/', false, $context);
?>
]]>
</programlisting>
</example>
</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
-->