-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathclearstatcache.xml
161 lines (151 loc) · 4.74 KB
/
clearstatcache.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?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
-->