PHP 实时获取文件大小

要将一个大的数据写入文件,但是不想写入一个,想写成一个文件xM,就需要实时判断文件大小,如果不清理文件状态缓存的话,无法实现效果。

clearstatcache() 函数清除文件状态缓存。

clearstatcache() 函数会缓存某些函数的返回信息,以便提供更高的性能。但是有时候,比如在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存,以便获得正确的结果。要做到这一点,就需要使用 clearstatcache() 函数。

会进行缓存的函数,即受 clearstatcache() 函数影响的函数:

    • stat()
    • lstat()
    • file_exists()
    • is_writable()
    • is_readable()
    • is_executable()
    • is_file()
    • is_dir()
    • is_link()
    • filectime()
    • fileatime()
    • filemtime()
    • fileinode()
    • filegroup()
    • fileowner()
    • filesize()
    • filetype()
    • fileperms()
 1 //信息存入文件,每个文件2m,
 2                 $max_size       = 1024 * 1024 * 2;
 3
 4                 $v              = str_repeat( ‘hello‘, 20 );
 5
 6                 $tmp_i          = 1;
 7                 $handler        = null;
 8                 //foreach( Dinfo::gAllDocListHandle()->each() as $v ) {
 9                 for( $i = 0; $i <= 100000; $i ++ ){
10                     if( is_null( $handler ) ){
11                         $handler        = fopen( $file_path, ‘ab‘ );
12                         flock( $handler, LOCK_EX );
13                     }
14
15                     $tmp_val            = json_encode( $v ) . "\r\n";
16                     fwrite( $handler, $tmp_val, mb_strlen( $tmp_val, ‘utf8‘ )  );
17                     clearstatcache();
18
19                     if( filesize( $file_path ) >= $max_size ) {
20                         flock( $handler, LOCK_UN );
21                         fclose( $handler );
22                         $handler    = null;
23                         $file_path  = $cache_dir . ‘allDoc.‘ . $tmp_i++ . ‘.txt‘;
24                     }
25                 }

时间: 2024-08-29 18:31:31

PHP 实时获取文件大小的相关文章

ios NSFileManager和NSFileHandle(附:获取文件大小 )

转自 http://blog.csdn.net/zhibudefeng/article/details/7795946 //file 文件操作 NSFileManager 常见的NSFileManager文件的方法: -(BOOL)contentsAtPath:path                从文件中读取数据 -(BOOL)createFileAtPath:path contents:(BOOL)data attributes:attr      向一个文件写入数据 -(BOOL)rem

JS实时获取输入框中的值

实时获取input输入框中的值需要oninput和onpropertychange属性来实现.原因是onpropertychange属性为IE专属,而oninput属性支持大部分浏览器包括IE9及以上的版本. oninput与onpropertychange失效的情况: oninput事件:1. 在脚本中改变value时,不会触发:2.从浏览器的自动下拉提示中选取时,不会触发. 例如: var testinput = document.createElement('input'); if('on

一个实时获取股票数据的安卓应用程序

关键字:Stock,股票,安卓,Android Studio. OS:Windows 10. 最近学习Android应用开发,不知道写一个什么样的程序来练练手,正好最近股票很火,就一个App来实时获取股票数据,取名为Mystock.使用开发工具Android Studio,需要从Android官网下载,下载地址:http://developer.android.com/sdk/index.html.不幸的是Android是Google公司的,任何和Google公司相关的在国内都无法直接访问,只能

用angular实时获取本地localStorage数据,实现一个模拟后台数据登入的效果

研究了一上午,终于做出了,实时获取本地localStorage来模拟注册登入~~~ <!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>我们虽然很穷,但是我们有梦想</title><script src="angular.js"></script></head>

win10 uwp 从StorageFile获取文件大小

本文主要:获取文件大小 private async Task<ulong> FileSize(Windows.Storage.StorageFile file) { var size = await file.GetBasicPropertiesAsync(); return size.Size; }//32ddd4227a66713e1329214424c4be9b 在群里看到有大神问我就写出,虽然少,在没看到他们说之前没想到,九幽开发者:53078485 参见:http://stackov

C/C++ 获取文件大小

面试的时候面试官提到了怎样获取文件的大小,现在总结如下: 在C语言中测试文件的大小,主要使用二个标准函数. 1.fseek 函数原型:int fseek ( FILE * stream, long int offset, int origin ); 参数说明:stream,文件流指针:offest,偏移量:orgin,原(始位置.其中orgin的可选值有SEEK_SET(文件开始).SEEK_CUR(文件指针当前位置).SEEK_END(文件结尾). 函数说明:对于二进制模式打开的流,新的流位置

Linux命令:cp、time、cut、awk 、获取文件大小命令

最近写了一个shell脚本,用到了cp.time.cut.awk命令,把他们的使用方法给写下来: 1.cp和mv cp命令:用来完成文件的复制,从源文件夹复制到目标文件夹.执行后源文件夹和目标文件夹均有源文件. mv 命令:用来移动文件.执行后,源文件夹中没有源文件.我经常用mv命令来重命名文件 注意:cp命令源文件夹与目标文件夹不能使同一个:而在mv中可以是同一个. 命令解析: #cp [-R] 源文件 目标文件夹 cp -R 参数 ---当复制整个文件夹时使用. #mv 源文件 目标文件夹

实时获取网络时间 并转换为北京时间的函数

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Winapi.msxml, System.DateUtils, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton

html5 canvas+原生javascript 实时获取文本框内容绘制图片水印

最近有位客户要求在网页图片上加文字水印效果,并且内容是从当前网页的文本输入框实时获取的,研究了一半天,在网上也参考了不少朋友的办法,再加上园子里热心的好哥们帮助终于实现了,先看下效果图: 代码如下: 1 <!DOCTYPE html> 2 <head> 3 <meta charset="UTF-8"> 4 <title>drawing by input text</title> 5 </head> 6 7 <