前言:
有感于园友的电影目录对比工具《技术改变生活——电影目录核对工具(php)》,实现电影文件内容变更,自己尝试写了一个个人文件目录的变更日志小程序
正文
实现功能:
- 实现子文件的文件读取,只写了两级,多级的话循环调就可以了
- 文件目录生成(使用序列化的格式,可以当作文件日志,当然你可以可以生成好看的排版格式)
- 文件变更对比,(本以为使用array_diff很容易实现,结果不知道返回值总是空,蛋疼,希望高手尝试一下)
- 推荐两个万能的电影搜索工具(电影爱好者必备)
直接上代码吧:
<?php /*扫描指定目录下文件 返回数组 */ function mydir($dir){ $myfile = scandir($dir,1); foreach($myfile as $k=>$v){ if(is_dir($dir."/".$v)==true&&$dir."/".$v !=$dir."/"."."&&$dir."/".$v !=$dir."/".".."){ $sondir = $dir."/".$v; $sonfile = scandir($sondir); foreach($sonfile as $kk=>$vv) $result[$k][$kk]['filename'] = $vv; // $result[$k][$kk]['filesize'] = filesize($vv);//文件大小 单位字节 $result[$k][$kk]['filectime'] = date("Y-m-d H:i:s",filectime($sondir."/".$vv)); $result[$k][$kk]['fileatime'] = date("Y-m-d H:i:s",fileatime($sondir."/".$vv));//上次访问时间 }else{ $result[$k]['filename'] = $v;//文件名称 // $result[$k]['filesize'] = filesize($v);//文件大小 单位字节 // $result[$k]['fileowner'] = fileowner($v);//文件属于者 $result[$k]['filectime'] = date("Y-m-d H:i:s",filectime($dir."/".$v));//创建时间 $result[$k]['fileatime'] = date("Y-m-d H:i:s",fileatime($dir."/".$v));//上次访问时间 } } return $result; } //测试 $mydir = mydir("F:\电影\Youku视频"); $array = serialize($mydir);//序列化存储 $fp = fopen("data.txt","a");//每次变化都追加到文件尾端写入(相当于日志) if(fwrite($fp,$array)){ echo "文件日志生成ok"; fclose($fp); }
测试截图:
扫描文件夹使 用scandir可以直接扫描出文件夹信息,但是会默认出现本一级和上一级目录,所以在子集循环的时候排除了$dir."/".$v !=$dir."/"."."&&$dir."/".$v !=$dir."/"."..",由于是在win上面一些数据返回值意义不大,如文件属于者等等,
如果是视频类的文件可以安装php—ffmpeg来读取视频文件的大小 格式 分辨率 时常 等等信息,类似暴风读取视频的效果。参考:利用Ffmpeg获得flv视频缩略图和视频时间 获得视频时间总长度的另一种方法
日志存储:本文以序列化的格式存储,主要是节约存储文本大小,当然你也可以使用字符串的格式存储,那样可以起来比较好看。每次文件变更都会记录下来,生成日志@
读取和分析日志的方法:
$file = file_get_contents("data.txt");
$array = unserialize($file);//反序列化
echo "<pre/>";
print_r($array);
本想生成两个日志对比一下,使用array_diff对比数组差异不知道怎么回事,返回值总是为空,求解释!!
还是直接使用文本对比工具吧!推荐:
Compare It! 4.1b特色的文件直观比较、修改、合并工具┊汉化绿色特别版http://www.greendown.cn/soft/2860.html
在这里闲扯两句:看到很多人有硬盘什么几T大小,说实话我到现在都没有买过U盘,我的电脑320G的,我的还空着150多G,对于普通电影的话优酷上就可以看了,也没有必要下载,如果你想看非常规的电影在这里我推荐几个电影搜索工具,不过它是动作片 爱情片 奇幻片。。。貌似还没有找到过,除非他没有上传到互联网,本人这边的下载速度一般1-2M左右,公司的速度10M所以基本上不需要下电影,电影资源一搜就找到,另外如果你是一个重度Greader,一般的大片都会这第一时间看到下载资源,实在不需要收藏什么特别的电影,好了推荐的下载工具:http://dl.pconline.com.cn/download/83968.html
http://dl.pconline.com.cn/download/84876.html