php clearstatcache

void clearstatcache ([ bool $clear_realpath_cache = false [, string $filename ]] )

当使用 stat()lstat() 或者任何列在受影响函数表(见下面)中的函数时,PHP 将缓存这些函数的返回信息以提供更快的性能。然而在某些情况下,你可能想清除被缓存的信息。例如如果在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存。这种情况下,可以用 clearstatcache() 函数来清除被 PHP 缓存的该文件信息。

必须注意的是,对于不存在的文件,PHP 并不会缓存其信息。所以如果调用 file_exists() 来检查不存在的文件,在该文件没有被创建之前,它都会返回 FALSE。如果该文件被创建了,就算以后被删除,它都会返回 TRUE 函数 unlink() 会自动清除该缓存.

<?php
//检查文件大小
echo filesize("test.txt");

$file = fopen("test.txt", "a+");

// 截取文件
ftruncate($file,100);
fclose($file);

//清除缓存并再次检查文件大小
clearstatcache();
echo filesize("test.txt");
?>

输出:

792
100
时间: 2024-10-29 02:37:00

php clearstatcache的相关文章

目录文件处理函数之clearstatcache函数--清除缓存

Clearstatcache函数-清除缓存 当应用某些文件操纵函数对文件进行操作时,PHP将缓存这些函数的返回信息以提供更快的性能,还可以应用clearstatcache()函数清除缓存的内容. [语法]:void clearstatcache(void) 参数为空. [示例] <?PHP $array = stat("c:/windows/index.php"); Print_r($array); Clearstatcache(); [注意] 将返回信息保存到缓存中的文件操作函

PHP clearstatcache() 函数

定义和用法 clearstatcache() 函数清除文件状态缓存. PHP 会缓存某些函数的返回信息,以便提供更高的性能.但是有时候,比如在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存,以便获得正确的结果.要做到这一点,请使用 clearstatcache() 函数. 语法 clearstatcache() 提示和注释 提示:会进行缓存的函数,即受 clearstatcache() 函数影响的函数: stat() lstat() file

我的第一个comet长连接例子

<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"

ecshop的Mysql操作类

摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MYSQL 公用类库 * ============================================================================ * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利. * 网站地址: http://www.ecsho

并发下常见的加锁及锁的PHP具体实现-转载

并发下常见的加锁及锁的PHP具体实现 http://www.cnblogs.com/scotoma/archive/2010/09/26/1836312.html 在最近的项目中有这样的场景 1.生成文件的时候,由于多用户都有权限进行生成,防止并发下,导致生成的结果出现错误,需要对生成的过程进行加锁,只容许一个用户在一个时间内进行操作,这个时候就需要用到锁了,将这个操作过程锁起来. 2.在用了cache的时候,cache失效可能导致瞬间的多数并发请求穿透到数据库此时也可以得需要用锁在同一并发的过

ecshop适应PHP7的修改

说实话,ecshop这个系统,到目前也没见怎么推出新版本,如果是新项目,不太建议使用它.不过,因为我一直以来都在使用中,所以不得不更改让其适应PHP新版本.现在PHP 7已经出发行版了,所以更改来继续使用吧.具体的更改有以下方面: (1)将mysql扩展的使用替换掉,改为使用mysqli或pdo: 从php5.5开始,mysql扩展将废弃了. 具体更改的文件在于includes/cls_mysql.php.这是个不小的工程,文件代码太长…… if (!defined('DITAN_ECS'))

php自带函数大全

php自带函数大全 http://blog.csdn.net/hopewtc/article/details/6797326 Abs: 取得绝对值.Acos: 取得反余弦值.ada_afetch: 取得资料库的传回列.ada_autocommit: 开关自动更动功能.ada_close: 关闭 Adabas D 连结.ada_commit: 更动 Adabas D 资料库.ada_connect: 连结至 Adabas D 资料库.ada_exec: 执行 SQL 指令.ada_fetchrow

php高并发状态下文件的读写

背景 1.对于PV不高或者说并发数不是很大的应用,不用考虑这些,一般的文件操作方法完全没有问题 2.如果并发高,在我们对文件进行读写操作时,很有可能多个进程对进一文件进行操作,如果这时不对文件的访问进行相应的独占,就容易造成数据丢失 例如:一个在线聊天室(这里假定把聊天内容写入文件),在同一时刻,用户A和用户B都要操作数据保存文件,首先是A打开了文件,然后更新里面的数据,但这 里B也正好也打开了同一个文件,也准备更新里面的数据.当A把写好的文件保存时,这里其实B已经打开了文件.但当B再把文件保存

一些封装的php函数

swoole群中奥总共享的创建文件夹: function make_dir($folder){ $reval = false; if (!file_exists($folder)){ /* 如果目录不存在则尝试创建该目录 */ @umask(0); /* 将目录路径拆分成数组 */ preg_match_all('/([^\/]*)\/?/i', $folder, $atmp); /* 如果第一个字符为/则当作物理路径处理 */ $base = ($atmp[0][0] == '/') ? '/