zoukankan      html  css  js  c++  java
  • PHP文件操作

    文件操作
    1.只能操作服务器的文件
    2.文件包含目录和文件
    判断文件类型
    var_dump(filetype("../0626"));//返回文件类型 目录是dir 文件是file
    var_dump(is_dir("../0626"));//判断路径是不是目录
    var_dump(is_file("../ajax.php"));//判断路径是不是文件

    文件属性
    echo date("Y-m-d H:i:s",fileatime("../ajax.php"));//上次访问时间
    echo date("Y-m-d H:i:s",filectime("../ajax.php"));//创建时间
    echo date("Y-m-d H:i:s",filemtime("../ajax.php"));//修改时间
    echo filesize("../ajax.php");//文件大小 字节为单位
    var_dump(file_exists("../ajax.php"));//判断文件是否存在

    文件路径
    当前路径 ./ 上级目录 ../ 下级目录 目录/ 根路径 /
    如果是php里面的根 / 路径代表:磁盘的根
    如果是在网页里面的根 / 路径代表:服务器的根 www
    var_dump(file_exists("/wamp/www/ajax.php"));
    echo $_SERVER['DOCUMENT_ROOT'];//取服务器的根路径
    echo basename("../ajax.php");//从路径中获取带后缀的文件名
    echo basename("../ajax.php",".php");//从路径中获取不带后缀的文件名
    echo dirname("../ajax.php");//取路径中除去文件名的目录
    var_dump(pathinfo("../0630/upload.php"));//返回目录信息 格式为数组
    echo realpath("../0630/upload.php");//将相对路径转化为绝对路径

    操作目录
    var_dump(glob("../0627/*.php"));//获取目录下所有的文件* 某个后缀的*.php

    /*$attr=glob("../0627/*");
    for($i=0;$i<count($attr);$i++)
    {
    echo $attr[$i]."<br>";
    }*/

    获取目录下文件和文件夹数量如下 使用全局变量
    /*$filenum=0;
    $dirnum=0;
    Num("../0627");
    echo "文件数量为".$filenum."<br>";
    echo "文件夹的数量为".$dirnum;
    function Num($url)
    {
    global $filenum;
    global $dirnum;
    //判断给的路径是不是文件
    if(is_file($url))
    {
    $filenum=1;
    return $filenum;
    exit;
    }
    //获取目录下所有的子文件
    $attr=glob($url."/*");
    //遍历所有的子文件
    foreach($attr as $v)
    {
    if(is_file($v))
    {
    $filenum++;
    }
    else
    {
    $dirnum++;
    Num($v);
    }
    }
    echo "";
    }*/

    只求文件数量 不使用全局变量
    /*echo Num("../0627");
    function Num($url)
    {
    $filenum=0;
    //判断给的路径是不是文件
    if(is_file($url))
    {
    $filenum=1;
    return $filenum;
    exit;
    }
    //获取目录下所有的子文件
    $attr=glob($url."/*");
    //遍历所有的子文件
    foreach($attr as $v)
    {
    if(is_file($v))
    {
    $filenum++;
    }
    else
    {
    $filenum=$filenum+Num($v);
    }
    }
    return $filenum;
    }*/

    //计算文件夹大小
    echo DirSize("../0627")."<br>";
    function DirSize($url)
    {
    //定义变量存储文件大小
    $size=0;
    //判断给的路径是不是文件
    if(is_file($url))
    {
    return filesize($url);
    exit;
    }
    //如果是目录 取目录下的所有文件
    $attr=glob($url."/*");
    //遍历子文件
    foreach($attr as $v)
    {
    if(is_file($v))
    {
    $size=$size+filesize($v);
    }
    else
    {
    $size=$size+DirSize($v);
    }
    }
    return $size;
    }

    //使用目录资源遍历
    $dir=opendir("../0627");//打开目录资源
    //echo readdir($die);//读取目录下的文件 执行一次读一个
    while($wj=readdir($dir))
    {
    echo $wj."<br>";
    //if($wj=="." || $wj=="..")
    }
    closedir($dir);//关闭目录资源
    rewinddir($dir);//将指针重置
    使用readdir()读取的第一个和第二个内容
    第一个是.代表当前目录
    第二是..上级目录
    在使用目录资源遍历文件夹时要注意将前两个排除if($wj=="." || $wj=="..")

    目录操作
    1.创建目录(文件夹)
    //mkdir("./test");
    2.删除目录(文件夹) 只能删除空的文件夹
    //rmdir("./test");
    3.移动目录(文件夹)<br />
    //rename("./test","../test11");

    文件整体操作
    //touch("./test.txt");//创建文件
    //copy("./test.txt","../test.txt");//复制文件
    //unlink("./test.docx");//删除文件
    //echo file_get_contents("./test.txt");//获取文件内容 txt 页面
    //echo file_get_contents("http://www.baidu.com");//远程获取内容
    //file_put_contents("./test.txt","hello");//向文件写入内容 会清空原有内容
    //readfile("./test.txt");//获取文件内容 且直接输出
    //var_dump(file("./test.txt"));//读取文件内容 返回数组,数组的每个元素对应的是一行

    文件内容操作
    1.打开文件资源
    $fp=fopen("./test.txt","a");
    操作文件
    //echo fgetc($fp);//每次读一个字符
    /*while(!feof($fp))//判断文件是否读到末尾
    {
    echo fgetc($fp);
    }*/
    //echo fgets($fp);//每次读一行
    //echo fread($fp,10);//读取特定长度换行占2个字符
    fwrite($fp,"hey kaka ok");// 换行

    2.关闭文件资源
    fclose($fp);

    删除文件夹

    <?php
    	//删除文件夹(包括里面的所有文件)
    	//  ./tp
    	//  ./tp/Public
    	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("./tp");
    

      重点内容如下:

    var_dump(filetype("../0529")); //返回文件的类型:目录dir 文件file
    var_dump(is_dir("../11.php")); //判断路径是不是目录
    var_dump(is_file("../11.php")); //判断路径是不是文件

    echo filesize("../11.php"); //文件大小,字节为单位
    var_dump(file_exists("../12.php")); //判断文件是否存在

    当前路径:./ 上级目录:../ 下级目录:目录/ 根路径:/
    如果是php里面的根(/)路径代表:磁盘的根
    如果是在网页里面的根(/)路径代表:服务器的根(www目录)

    var_dump(pathinfo("../0529/aa.php")); //返回目录信息,格式为数组
    echo realpath("../0529/aa.php"); //将相对路径转化为绝对路径

    目录资源

    1.创建目录(文件夹)
    mkdir("./test");
    2.删除目录(文件夹)只能删除空的文件夹
    rmdir("./test");
    3.移动目录(文件夹)
    rename("./test","../test11");

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

    echo file_get_contents("./test.txt"); //获取文件内容:txt 页面

    文件资源

  • 相关阅读:
    hbase单机安装和简单使用
    工作随记--div最小高度
    工作随记——弹出QQ联系方式
    关于vs2012解决方案中项目DLL文件引用问题
    工作随想——框架之我见
    jQuery 选择表格(table)里的行和列及改变简单样式
    ASP.NET的Get和Post方式的区别归纳总结
    C# 静态类与非静态类、静态成员的区别
    引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题
    python技巧 一等函数
  • 原文地址:https://www.cnblogs.com/hamilton/p/5636137.html
Copyright © 2011-2022 走看看