zoukankan      html  css  js  c++  java
  • 文件系统处理

    文件:文件和文件夹(目录)

      文件属性

    echo filetype("./aa.txt");//获取文件类型;如果是文件返回file;如果是目录返回dir
    
    echo is_dir("./test");  //判断给的路径是不是目录,返回bool型
    
    is_file("./aa.txt");  //判断给定的路径是不是文件,返回bool型
    
    echo date("Y-m-d H:i:s",fileatime("./aa.txt"));  //获取文件的上次访问时间(给出的是时间戳)
    
    echo date("Y-m-d H:i:s",filectime("./aa.txt"));  //获取文件的创建时间(给出的是时间戳)
    
    echo date("Y-m-d H:i:s",filemtime("./aa.txt"));  //获取文件的修改时间(给出的是时间戳)
    
    echo filesize("./aa.txt");  //获取文件大小
    
    echo file_exists("./aa.txt");   //判断文件是否存在,返回bool型
    

    目录的基本操作

    一、文件路径:

    1.当前目录:./或不写
    2.上级目录:../

    3.下级目录:文件夹名/
    4.根目录:/
    4.1根目录/有两层意思:如果/是在php程序中,代表“硬盘目录”;如果/是在网页程序里,代表“www目录”

    做文件(头像,产品目录)上传时,保存在数据的路径一般要写绝对路径

    echo $_SERVER['DOCUMENT_ROOT'];  //取服务器www的根目录
    
    echo basename("./aa.txt"); //从路径中获取文件名
    
    echo basename("./aa.txt",".txt");  //返回没有后缀的文件名
    
    echo dirname("./test/bb.txt");  //返回路径中的目录
    
    var_dump(pathinfo("./test/bb.txt"));  //获取文件和目录的信息,以数组形势返回
    
    echo realpath("./test/bb.txt");  //将相对路径转为绝对路径
    

    二、遍历目录

      遍历目录方式一:glob()

    var_dump(glob("./cutfruit/*"));  //返回cutfruit文件夹下所有的文件,数组形式
    
    var_dump(glob("./cutfruit/*.js"));  //返回ueditor文件夹下js文件(筛选)
    

      

          练习一:获取文件夹下所有文件个数

    //获取文件夹下所有文件个数
    echo Shuliang("./cutfruit");
    
    function Shuliang($filename)
    {
    	if(is_dir($filename))
    	{
    		$attr=glob($filename."/*");
    		$sl=0;
    		foreach($attr as $v)
    		{
    			if(is_dir($v))
    			{
    				$sl=$sl+Shuliang($v);
    			}
    			else
    			{
    				$sl++;
    			}
    		}
    		return $sl;
    	}
    			
    	else if(is_file($filename))
    	{
    		return 1;
    	}
    	
    	else
    	{
    		return 0;
    	}
    }
    

      

         练习二:获取文件夹下所有文件的大小总和

    //获取文件夹下所有文件的大小总和
    echo Size("../0521");
    
    function Size($filename)
    {
    	if(is_dir($filename))
    	{
    		$attr=glob($filename."/*");
    		$size=0;
    		foreach($attr as $v)
    		{
    			if(is_dir($v))
    			{
    				$size=$size+Size($v);
    			}
    			else
    			{
    				$size=$size+filesize($v);
    			}
    		}
    		return $size;
    	}
    			
    	else if(is_file($filename))
    	{
    		return filesize($filename);
    	}
    	
    	else
    	{
    		return 0;
    	}
    }
    

     

        遍历目录方式二:opendir()打开指定的目录

                             readdir()读取指定的目录

                             rewinddir()重置目录指针,即将目录指针重置目录的开始处

                             closedir()关闭目录

     

    //打开目录资源
    $dir=opendir("./cutfruit");
    
    echo readdir($dir),'<br>'; //读文件  .当前目录
    echo readdir($dir),'<br>'; //读文件  ..上级目录
    echo readdir($dir),'<br>'; //读文件  目录下的文件名
    
    while($v=readdir($dir))
    {
    	if($v=="."||$v=="..")  //排除往上找文件
    	{}
    	else
    	{
    		echo $v."<br>";
    	}
    }
    
    rewinddir($dir);//重置目录资源的指针
    
    //关闭文件夹
    closedir($dir);
    

      

      三、建立和删除目录

    mkdir("./cc");//创建文件夹
    
    rmdir("./cc");//删除目录,只能删除空文件夹
    
    rename("./test","./cc/ts");  //重名民、移动文件夹
    

      

    文件操作

     一、对文件的基本操作

      1.文件的基本操作

    touch("./cc.txt");  //创建文件
    
    copy("./cc.txt","../cc.txt");  //复制文件
    
    unlink("../cc.txt");  //删除文件
    

      2.文件的读取、写入

    echo file_get_contents("./cc.txt");//读取文件内容(word、excel文件除外)
    echo file_get_contents("http://www.baidu.com"); //读取远程文件内容
    
    file_put_contents("./cc.txt","你好,世界!  hello  world!"); //写入文件,并将以前的内容覆盖(word、excel文件除外)
    file_put_contents("./cc.txt",file_get_contents("http://www.baidu.com"));  
    

      

    readfile("./cc.txt");  //读取文件内容并且输出
    
    var_dump(file("./cc.txt"));  //读取文件内容,返回数组,数组里面存储的是每一行
    

      

     二、对文件内容的基本操作

        1、文件的打开(只读模式)、读取

    $fp=fopen("./cc.txt","r");  //打开文件,只读
    
    /*echo fgetc($fp);  //读取文件内容,一个一个字符的读
    echo fgetc($fp);
    echo fgetc($fp);*/
    
    while($v=fgetc($fp))
    {
    	echo $v;
    }
    
    echo fgets($fp);  //读取文件,一次读一行
    
    echo fread($fp,4); //读取文件内容,可以设置读取长度
    

      2.文件的打开(只写模式)、写入

              模式一:写入内容,之前的内容会清空

    $fp=fopen("./cc.txt","w");  //打开文件,只写
    
    fwrite($fp,"asdfg");  //写入内容,之前的内容会清空
    

            

                  模式一:写入内容,在文件内容后面追加写入

    $fp=fopen("./cc.txt","a");  //打开文件,只写
    
    fwrite($fp,"asdfg");  //写入内容,在文件后面追加写入
    

      

          3、文件的关闭

    fclose($fp);//关闭文件
    

      

    某个文件夹里的文件全部删除函数(慎用)

    <?php
    	function deldir($dirname) 
    	{
    		if(!file_exists($dirname)) 
    		{
    			die("文件夹不存在!");
    		}
    		//如果是文件,直接删除即可
    		if(is_file($dirname)) 
    		{
    			unlink($dirname);
    			exit();
    		}
    
    		//打开目录资源
    		$dir = opendir($dirname);
    
    		while($filename = readdir($dir)) 
    		{
    			if($filename !="." && $filename!="..") 
    			{ //*******
    				$filename = $dirname."/".$filename;
    
    				if(is_dir($filename) ) 
    				{
    					deldir($filename);
    				}
    				else 
    				{
    					unlink($filename);
    				}
    			
    			}
    		}
    
    		
    
    		closedir($dir);
    		rmdir($dirname);
    	}
    
    
    //调用删除文件函数
    deldir("./aa");
    

      

  • 相关阅读:
    常见运算符_python
    hibernate中的二级缓存
    事务的隔离级别
    java hibernate 一对多和多对多映射关系总结
    hibernate中集合映射总结
    java中静态代码块之我的理解
    select下拉表达设置选中,获取选中项,change
    jquery checkbox设置选中,全选,反选,取值
    javaWeb建立一个简单三层项目具体步骤
    java 异步实现省市联动
  • 原文地址:https://www.cnblogs.com/zst062102/p/5524760.html
Copyright © 2011-2022 走看看