php-doc-en/reference/filesystem/functions/clearstatcache.xml
Adam Harvey b1d6df4015 Fix doc bug #51474 (Typo in clearstatcache documentation) and touch up a couple
of other grammatical issues with the clearstatcache() page at the same time.


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@297556 c90b9560-bf6c-de11-be94-00142212c4b1
2010-04-06 04:26:06 +00:00

184 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.clearstatcache">
<refnamediv>
<refname>clearstatcache</refname>
<refpurpose>Clears file status cache</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></methodparam>
</methodsynopsis>
<para>
When you use <function>stat</function>, <function>lstat</function>, or
any of the other functions listed in the affected functions list (below),
PHP caches the information those functions return in order to provide
faster performance. However, in certain cases, you may want to clear the
cached information. For instance, if the same file is being checked
multiple times within a single script, and that file is in danger of
being removed or changed during that script's operation, you may elect to
clear the status cache. In these cases, you can use the
<function>clearstatcache</function> function to clear the information
that PHP caches about a file.
</para>
<para>
You should also note that PHP doesn't cache information about non-existent
files. So, if you call <function>file_exists</function> on a file that
doesn't exist, it will return &false; until you create the file. If you
create the file, it will return &true; even if you then delete the file.
However <function>unlink</function> clears the cache automatically.
</para>
<note>
<para>
This function caches information about specific filenames, so you only
need to call <function>clearstatcache</function> if you are performing
multiple operations on the same filename and require the information
about that particular file to not be cached.
</para>
</note>
<para>
Affected functions include <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>, and
<function>fileperms</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>clear_realpath_cache</parameter></term>
<listitem>
<para>
Whether to clear the realpath cache or not.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
Clear the realpath cache for a specific filename; only used if
<parameter>clear_realpath_cache</parameter> is &true;.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</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>5.3.0</entry>
<entry>
Added optional <parameter>clear_realpath_cache</parameter>
and <parameter>filename</parameter> parameters.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>clearstatcache</function> example</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
-->