mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-26 18:02:17 +01:00
389 lines
13 KiB
XML
389 lines
13 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: fbba47c54e8d6d7af9e44a4cfab62b42a02ffd11 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
|
|
<refentry xml:id="wrappers.php" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" role="noversion">
|
|
<refnamediv>
|
|
<refname>php://</refname>
|
|
<refpurpose>Accès aux divers flux I/O</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<para>
|
|
PHP fournit un nombre important de flux I/O qui permettent d'accéder
|
|
aux flux d'entrée et de sortie de PHP lui-même, aux descripteurs de fichiers
|
|
de l'entrée standard et des sorties standard et d'erreurs, à des flux représentant
|
|
des fichiers temporaires en mémoire vive ou sur le disque, ainsi qu'à des filtres
|
|
qui peuvent manipuler d'autres ressources de fichiers pendant la lecture ou l'écriture.
|
|
</para>
|
|
|
|
<refsect2 xml:id="wrappers.php.std">
|
|
<title>php://stdin, php://stdout et php://stderr</title>
|
|
<simpara>
|
|
<filename>php://stdin</filename>, <filename>php://stdout</filename> et
|
|
<filename>php://stderr</filename> permettent des accès directs aux flux d'entrée
|
|
ou de sortie correspondant du processus PHP. Le flux fait référence à une copie
|
|
du descripteur de fichier, ce qui signifie que si vous ouvrez <filename>php://stdin</filename>
|
|
et le fermez plus tard, vous ne fermez que votre copie du descripteur ; le
|
|
flux réellement référencé par <constant>STDIN</constant> n'est pas affecté.
|
|
Il est recommandé d'utiliser uniquement les constantes <constant>STDIN</constant>,
|
|
<constant>STDOUT</constant> et <constant>STDERR</constant> au lieu
|
|
d'ouvrir manuellement les flux en utilisant ces gestionnaires.
|
|
</simpara>
|
|
<simpara>
|
|
<filename>php://stdin</filename> est en lecture seule, alors que
|
|
<filename>php://stdout</filename> et <filename>php://stderr</filename> sont
|
|
en écriture seule.
|
|
</simpara>
|
|
</refsect2>
|
|
|
|
<refsect2 xml:id="wrappers.php.input">
|
|
<title>php://input</title>
|
|
<simpara>
|
|
<filename>php://input</filename> est un flux en lecture seule qui permet
|
|
de lire des données brutes depuis le corps de la requête.
|
|
<filename>php://input</filename> n'est pas disponible avec
|
|
<literal>enctype="multipart/form-data"</literal>.
|
|
</simpara>
|
|
</refsect2>
|
|
|
|
<refsect2 xml:id="wrappers.php.output">
|
|
<title>php://output</title>
|
|
<para>
|
|
<filename>php://output</filename> est un flux en écriture seule, qui permet d'écrire
|
|
dans le mécanisme de buffer de sortie de la même façon que les fonctions
|
|
<function>print</function> et
|
|
<function>echo</function>.
|
|
</para>
|
|
</refsect2>
|
|
|
|
<refsect2 xml:id="wrappers.php.fd">
|
|
<title>php://fd</title>
|
|
<simpara>
|
|
<filename>php://fd</filename> permet un accès direct au descripteur de fichier
|
|
spécifié. Par exemple, <filename>php://fd/3</filename> correspond au
|
|
descripteur de fichier numéro 3.
|
|
</simpara>
|
|
</refsect2>
|
|
|
|
<refsect2 xml:id="wrappers.php.memory">
|
|
<title>php://memory et php://temp</title>
|
|
<simpara>
|
|
<filename>php://memory</filename> et <filename>php://temp</filename>
|
|
sont des flux en lecture/écriture qui permettent de stocker des données
|
|
temporaires dans un gestionnaire de fichiers. La seule différence entre
|
|
ces deux flux est que <filename>php://memory</filename> stockera toujours
|
|
ses données en mémoire, alors que <filename>php://temp</filename> utilisera un
|
|
fichier temporaire une fois que la quantité de données enregistrées aura dépassé
|
|
une limite prédéfinie (par défaut, 2 Mo). L'emplacement
|
|
de ce fichier temporaire est déterminé de la même manière que pour
|
|
la fonction <function>sys_get_temp_dir</function>.
|
|
</simpara>
|
|
<simpara>
|
|
La limite mémoire de <filename>php://temp</filename> peut être contrôlée
|
|
en ajoutant <literal>/maxmemory:NN</literal>, où <literal>NN</literal> est
|
|
la quantité maximale de données à conserver en mémoire avant d'utiliser
|
|
un fichier temporaire, en octets.
|
|
</simpara>
|
|
</refsect2>
|
|
|
|
<refsect2 xml:id="wrappers.php.filter">
|
|
<title>php://filter</title>
|
|
<simpara>
|
|
<filename>php://filter</filename> est une sorte de gestionnaire prévu
|
|
pour permettre l'application de <link linkend="filters">filtres</link>
|
|
sur un flux au moment de son ouverture. Ceci est très pratique avec
|
|
des fonctions sur des fichiers toutes-en-un comme les fonctions
|
|
<function>readfile</function>, <function>file</function> et
|
|
<function>file_get_contents</function>, où il n'existe pas d'autre mécanisme
|
|
permettant d'appliquer un filtre au flux avant que le contenu ne soit lu.
|
|
</simpara>
|
|
<para>
|
|
La cible de <filename>php://filter</filename> prend les paramètres suivants
|
|
sous la forme de composantes de son chemin. Plusieurs filtres chaînés
|
|
peuvent être spécifiés en un seul chemin. Reportez-vous aux exemples
|
|
pour une utilisation correcte de ces paramètres.
|
|
</para>
|
|
<para>
|
|
<table>
|
|
<title>Paramètres de php://filter</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Nom</entry>
|
|
<entry>Description</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>
|
|
<literal>resource=<flux à filtrer></literal>
|
|
</entry>
|
|
<entry>
|
|
Ce paramètre est requis. Il spécifie le flux que vous souhaitez
|
|
filtrer.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<literal>read=<liste des filtres à appliquer à la lecture></literal>
|
|
</entry>
|
|
<entry>
|
|
Ce paramètre est optionnel. Un ou plusieurs noms de filtres
|
|
peuvent être fournis ici, séparés par un caractère pipe (<literal>|</literal>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<literal>write=<liste des filtres à appliquer à l'écriture></literal>
|
|
</entry>
|
|
<entry>
|
|
Ce paramètre est optionnel. Un ou plusieurs noms de filtres
|
|
peuvent être fournis ici, séparés par un caractère pipe (<literal>|</literal>).
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<literal><liste de filtre à appliquer à la fois lors de la lecture et de l'écriture></literal>
|
|
</entry>
|
|
<entry>
|
|
Tous les filtres fournis sans être préfixés par <literal>read=</literal>
|
|
ou <literal>write=</literal> seront appliqués à la fois lors de la
|
|
lecture et lors de l'écriture.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</refsect2>
|
|
</refsect1>
|
|
|
|
<refsect1 role="options"><!-- {{{ -->
|
|
&reftitle.options;
|
|
<para>
|
|
<table>
|
|
<title>
|
|
Résumé du gestionnaire (pour <literal>php://filter</literal>, reportez-vous
|
|
au résumé du gestionnaire à filtrer)
|
|
</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Attribut</entry>
|
|
<entry>Supporté</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Restreint par <link linkend="ini.allow-url-fopen">allow_url_fopen</link></entry>
|
|
<entry>Non</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Restreint par <link linkend="ini.allow-url-include">allow_url_include</link></entry>
|
|
<entry>
|
|
<literal>php://input</literal>,
|
|
<literal>php://stdin</literal>,
|
|
<literal>php://memory</literal> et
|
|
<literal>php://temp</literal> uniquement.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Autorise la lecture</entry>
|
|
<entry>
|
|
<literal>php://stdin</literal>,
|
|
<literal>php://input</literal>,
|
|
<literal>php://fd</literal>,
|
|
<literal>php://memory</literal> et
|
|
<literal>php://temp</literal> uniquement.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Autorise l'écriture</entry>
|
|
<entry>
|
|
<literal>php://stdout</literal>,
|
|
<literal>php://stderr</literal>,
|
|
<literal>php://output</literal>,
|
|
<literal>php://fd</literal>,
|
|
<literal>php://memory</literal> et
|
|
<literal>php://temp</literal> uniquement.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Autorise l'ajout</entry>
|
|
<entry>
|
|
<literal>php://stdout</literal>,
|
|
<literal>php://stderr</literal>,
|
|
<literal>php://output</literal>,
|
|
<literal>php://fd</literal>,
|
|
<literal>php://memory</literal> et
|
|
<literal>php://temp</literal> uniquement. (Équivalent à de l'écriture)
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Autorise à la fois la lecture et l'écriture</entry>
|
|
<entry>
|
|
<literal>php://fd</literal>,
|
|
<literal>php://memory</literal> et
|
|
<literal>php://temp</literal> uniquement.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Support de la fonction <function>stat</function></entry>
|
|
<entry>
|
|
Non. Néanmoins <literal>php://memory</literal> et
|
|
<literal>php://temp</literal> supportent <function>fstat</function>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Support de la fonction <function>unlink</function></entry>
|
|
<entry>Non</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Support de la fonction <function>rename</function></entry>
|
|
<entry>Non</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Support de la fonction <function>mkdir</function></entry>
|
|
<entry>Non</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Support de la fonction <function>rmdir</function></entry>
|
|
<entry>Non</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Support de la fonction <function>stream_select</function></entry>
|
|
<entry>
|
|
<literal>php://stdin</literal>,
|
|
<literal>php://stdout</literal>,
|
|
<literal>php://stderr</literal>,
|
|
<literal>php://fd</literal> et
|
|
<literal>php://temp</literal> uniquement.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</refsect1> <!-- }}} -->
|
|
|
|
<refsect1 role="examples"><!-- {{{ -->
|
|
&reftitle.examples;
|
|
<example><!-- {{{ -->
|
|
<title>php://temp/maxmemory</title>
|
|
<para>
|
|
Ce paramètre optionnel permet de configurer la limite
|
|
mémoire avant que <filename>php://temp</filename> ne commence à utiliser
|
|
un fichier temporaire.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Définit la limite à 5 Mo.
|
|
$fiveMBs = 5 * 1024 * 1024;
|
|
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
|
|
|
|
fputs($fp, "hello\n");
|
|
|
|
// Lit ce que nous venons d'écrire.
|
|
rewind($fp);
|
|
echo stream_get_contents($fp);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example><!-- }}} -->
|
|
<example><!-- {{{ -->
|
|
<title>php://filter/resource=<flux à filtrer></title>
|
|
<para>
|
|
Ce paramètre doit être placé à la fin de votre spécification
|
|
de <filename>php://filter</filename> et doit pointer sur le flux
|
|
que vous souhaitez filtrer.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
/* Ceci est équivalent à
|
|
readfile("http://www.example.com");
|
|
vu qu'aucun filtre n'est spécifié */
|
|
|
|
readfile("php://filter/resource=http://www.example.com");
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example><!-- }}} -->
|
|
<example><!-- {{{ -->
|
|
<title>php://filter/read=<liste de filtres à appliquer lors de la lecture></title>
|
|
<para>
|
|
Ce paramètre prend un ou plusieurs noms de filtres séparés par
|
|
un caractère pipe <literal>|</literal>.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
/* Ceci affichera le contenu de
|
|
www.example.com entièrement en majuscules */
|
|
readfile("php://filter/read=string.toupper/resource=http://www.example.com");
|
|
|
|
/* Ceci fera la même chose que le précédent,
|
|
mais encodera en plus le résultat en ROT13 */
|
|
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example><!-- }}} -->
|
|
<example><!-- {{{ -->
|
|
<title>php://filter/write=<liste des filtres à appliquer lors de l'écriture></title>
|
|
<para>
|
|
Ce paramètre prend un ou plusieurs noms de filtres séparés par
|
|
un caractère pipe <literal>|</literal>.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
/* Ceci va filtrer la chaîne "Hello World"
|
|
via le filtre rot13, puis écrire le résultat
|
|
dans le fichier example.txt du dossier courant */
|
|
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example><!-- }}} -->
|
|
<example>
|
|
<title>php://memory et php://temp ne sont pas réutilisables</title>
|
|
<para>
|
|
<filename>php://memory</filename> et <filename>php://temp</filename>
|
|
ne sont pas réutilisables, c.-à-d. après que les flux ont été fermés il n'y a aucun moyen de les référer à nouveau.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
file_put_contents('php://memory', 'PHP');
|
|
echo file_get_contents('php://memory'); // affiche rien
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</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
|
|
-->
|