Files
doc-fr/reference/filesystem/functions/clearstatcache.xml
2022-02-05 19:02:23 +00:00

162 lines
4.7 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. Si vous voulez
forcer la vérification du statut d'un fichier, dans le cas où le
fichier aurait pu être modifié ou aurait disparu, vous
devez utiliser la fonction <function>clearstatcache</function>
afin d'effacer de la mémoire les résultats du dernier
appel à la fonction.
</para>
<para>
Sachez que PHP ne met pas en cache les informations concernant
un fichier inexistant. Si vous appelez <function>file_exists</function>
sur un fichier qui n'existe pas, la fonction retournera &false;
jusqu'à ce que vous créiez le fichier. Si vous créez le fichier,
la fonction retournera &true; même si vous effacez le fichier.
</para>
<note>
<para>
Cette fonction met en cache des informations sur les fichiers.
Vous n'avez donc besoin d'appeler <function>clearstatcache</function> que
si vous faites des opérations multiples sur le dossier, et que vous
voulez 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 aussi 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
-->