• 个人电脑文件目录变更日志小程序


    前言:

    有感于园友的电影目录对比工具《技术改变生活——电影目录核对工具(php)》,实现电影文件内容变更,自己尝试写了一个个人文件目录的变更日志小程序

    正文

    实现功能:

    1. 实现子文件的文件读取,只写了两级,多级的话循环调就可以了
    2. 文件目录生成(使用序列化的格式,可以当作文件日志,当然你可以可以生成好看的排版格式)
    3. 文件变更对比,(本以为使用array_diff很容易实现,结果不知道返回值总是空,蛋疼,希望高手尝试一下)
    4. 推荐两个万能的电影搜索工具(电影爱好者必备)

    直接上代码吧:

    <?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);
    	}

    测试截图:

    QQ截图20111030211733

    扫描文件夹使 用scandir可以直接扫描出文件夹信息,但是会默认出现本一级和上一级目录,所以在子集循环的时候排除了$dir."/".$v !=$dir."/"."."&&$dir."/".$v !=$dir."/"."..",由于是在win上面一些数据返回值意义不大,如文件属于者等等,

    如果是视频类的文件可以安装php—ffmpeg来读取视频文件的大小 格式 分辨率 时常 等等信息,类似暴风读取视频的效果。参考:利用Ffmpeg获得flv视频缩略图和视频时间   获得视频时间总长度的另一种方法

    日志存储:本文以序列化的格式存储,主要是节约存储文本大小,当然你也可以使用字符串的格式存储,那样可以起来比较好看。每次文件变更都会记录下来,生成日志@

    QQ截图20111030211823

    读取和分析日志的方法:

    $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

  • 相关阅读:
    Linux的用户和组的属性
    Linux文件/目录 的新建、复制、移动(更名)、删除、查看、压缩命令
    排序算法和实现
    面试-三三原则
    phpstudy 最新版linux 面板 web防火墙后门防护功能教程
    小白必看的Python爬虫流程
    Python3迭代器与生成器
    python的异常处理机制
    python变量的作用域
    值得收藏的Python第三方库
  • 原文地址:https://www.cnblogs.com/phphuaibei/p/2229587.html
Copyright © 2020-2023  润新知