1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/reference/filesystem/functions/clearstatcache.xml
2026-02-28 22:54:29 +01:00

163 lines
4.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e82ff8a846af03b863c4a57fbedc0a93af0e68db Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.clearstatcache" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>clearstatcache</refname>
<refpurpose>Efface le cache de <function>stat</function></refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>clearstatcache</methodname>
<methodparam choice="opt"><type>bool</type><parameter>clear_realpath_cache</parameter><initializer>&false;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>filename</parameter><initializer>""</initializer></methodparam>
</methodsynopsis>
<para>
L'appel à la fonction <function>stat</function> ou
<function>lstat</function> est relativement coûteux en termes de
temps d'exécution. Pour cela, le résultat du dernier
appel à l'une des fonctions de statut, (voir la liste ci-dessous), est
sauvegardé pour réutilisation ultérieure. Pour
forcer la vérification du statut d'un fichier, dans le cas où le
fichier aurait pu être modifié ou aurait disparu, il faut
utiliser la fonction <function>clearstatcache</function>
afin d'effacer de la mémoire les résultats du dernier
appel à la fonction.
</para>
<para>
Il est à noter que PHP ne met pas en cache les informations concernant
un fichier inexistant. Si l'on appelle <function>file_exists</function>
sur un fichier qui n'existe pas, la fonction retourne &false;
jusqu'à ce que l'on crée le fichier. Si l'on crée le fichier,
la fonction retourne &true; même si l'on efface le fichier.
Cependant, <function>unlink</function> efface automatiquement le cache.
</para>
<note>
<para>
Cette fonction met en cache des informations sur les fichiers.
Il n'est donc nécessaire d'appeler <function>clearstatcache</function> que
si l'on fait des opérations multiples sur le même fichier, et que l'on
souhaite avoir une version récente des informations.
</para>
</note>
<para>
Les fonctions affectées incluent :
<function>stat</function>,
<function>lstat</function>,
<function>file_exists</function>,
<function>is_writable</function>,
<function>is_readable</function>,
<function>is_executable</function>,
<function>is_file</function>,
<function>is_dir</function>,
<function>is_link</function>,
<function>filectime</function>,
<function>fileatime</function>,
<function>filemtime</function>,
<function>fileinode</function>,
<function>filegroup</function>,
<function>fileowner</function>,
<function>filesize</function>,
<function>filetype</function>, et
<function>fileperms</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>clear_realpath_cache</parameter></term>
<listitem>
<para>
Si l'on doit <emphasis>aussi</emphasis> vider le cache des chemins réels.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
Nettoie le cache de chemin réel d'un fichier spécifique.
Ne peut être utilisé que si le paramètre
<parameter>clear_realpath_cache</parameter> vaut &true;.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>clearstatcache</function></title>
<programlisting role="php">
<![CDATA[
<?php
$file = 'output_log.txt';
function get_owner($file)
{
$stat = stat($file);
$user = posix_getpwuid($stat['uid']);
return $user['name'];
}
$format = "UID @ %s: %s\n";
printf($format, date('r'), get_owner($file));
chown($file, 'ross');
printf($format, date('r'), get_owner($file));
clearstatcache();
printf($format, date('r'), get_owner($file));
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross
]]>
</screen>
</example>
</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
-->