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

    自己写的:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <?php
    echo filetype("../1.txt");//输入路径,判断文件类型  文件——》file 文件夹(目录)——》dir "./"当前路径
    echo filetype("../code");
    //操作服务器所在磁盘的文件
    is_dir(); //判断是否是目录
    is_file();//判断是否是文件
    fileatime();//文件上次访问的时间(时间戳) date()
    filectime();//文件的创建时间
    filemtime();//文件的修改时间
    filesize();//文件的大小(返回字节)filesize/1024(kb)
    file_exists();//文件是否存在
    
    //文件的路径
    //当前路径——不写或者"./" 一般不用"" 
    //上一级文件夹——用"../"
    //根目录——"/":1、php代表的是磁盘的根 2、如果用html写代表的是服务器的根
    $_SERVER['DOCUMENT_ROOT'];//找网站的根目录(服务器的根)
    basename();//输入路径返回文件名
    dirname();//输入路径返回目录名(文件所在的文件夹)
    pathinfo();//返回路径的所有信息,返回类型为数组
    realpath();//相对路径转换为绝对路径
    
    //目录的操作
    mkdir();//新建目录(创建文件夹)
    rmdir();//删除目录:只能删除空的文件夹,当目录中存在文件是无法删除
    rename();//移动目录文件(重命名)
    glob("*");//遍历当前目录 返回数组——获取该目录下所有文件 "*.php"——筛选
    //用目录资源操作目录
    opendir();//打开目录资源
    closedir();//关闭目录资源(操作完之后要关闭)
    readdir();//有指针效果"."——当前目录,".."——上一级目录
    rewinddir();//指针返回第一个
         
         
         //打开目录资源
         $dir = opendir("./code");
         //读文件,每读一条指针向下走一个,注意第一个是.代表当前目录,第二个是..代表上一级目录
         while($filename = readdir($dir))
         {
             echo $filename."<br>";
         }
         echo "***************************";
         rewinddir($dir);
          while($filename = readdir($dir))
         {
             echo $filename."<br>";
         }
         //关闭资源
         closedir($dir);
    
    
    //文件操作
    //文件整体操作
    touch();//创建文件
    copy();//复制文件
    unlink();//删除文件
    file_get_contents();//读取文件内容
    file_put_contents();//写入文件内容,会把原来文件内容覆盖
    readfile();//直接读取并且显示出来
    file();//将文件内容返回到数组里面
    
       
    
    //文件内容的操作
    fopen();//打开文件资源
    fclose();//关闭文件资源
    fwrite();//写入内容
    fgetc();//读取文件内容,有指针效果,一次读一个字符
    feof();//读到末尾或者出错时返回true
    fgets();//读取文件内容,一次读一行
    fread();//读取内容,可以控制读取的长度
        
        
        $fp = fopen("./2.txt","r"); //打开文件资源
        
        fwrite($fp,"bbbbbbbbbbb");//写入内容
        
        while(!feof($fp)) //当读取出错或者读到末尾返回true
        {
            echo fgetc($fp); //读取内容,一个字符一个字符读,读完指针下移
        }
        
        while(!feof($fp))
        {
            echo fgets($fp)."<br>"; //读取内容,每次读一行
        }
    
    ?>
    </body>
    </html>

    比较完整的

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <?php
        
        //echo filetype("./1.jpg"); //判断文件类型  文件:file 
        //echo filetype("./code"); //目录 dir
        
        //echo is_dir("code"); //判断是不是目录
        //echo is_file("1.jpg"); //判断是不是文件
        
        //echo date("Y-m-d H:i:s",fileatime("1.jpg")); //获取上次的访问时间
        //echo date("Y-m-d H:i:s",filectime("1.jpg")); //文件的创建时间
        //echo date("Y-m-d H:i:s",filemtime("1.jpg")); //文件的修改时间
        //echo filesize("1.jpg")/1024; //文件的大小
        //echo file_exists("2.jpg"); //判断文件是否存在
        
        //echo filetype("/wamp");  //当前路径用./或不写;上以及用../; 
        
        /*正斜杠/代表根目录。如果是在php语言里写/则代表磁盘的根,如果是在网页的页面里面使用/则代表服务器的根*/
        
        //echo "<img src='/wenjiancaozuo/1.jpg' />";
        
        //echo $_SERVER['DOCUMENT_ROOT']; //找网站的根目录
        
        //echo basename("./code/db.inc.php",".php"); //从路径中返回文件名
        //echo dirname("./code/db.inc.php");//从路径中返回目录名
        //print_r(pathinfo("./code/db.inc.php"));//返回路径的所有信息,返回类型是数组
        //echo realpath("1.jpg"); //将相对路径转换为绝对路径
        
        /*目录操作*/
        //mkdir("./suiji"); //创建文件夹(目录)
        
        //rmdir("./suiji"); //删除目录,只能删除空的文件夹
        
         //rename("./name","./code/suiji"); //移动或重命名文件夹
         
         //print_r(glob("./code/*.php")); //获取该目录下所有文件,可以筛选
         
        /* //打开目录资源
         $dir = opendir("./code");
         //读文件,每读一条指针向下走一个,注意第一个是.代表当前目录,第二个是..代表上一级目录
         while($filename = readdir($dir))
         {
             echo $filename."<br>";
         }
         echo "***************************";
         rewinddir($dir);
          while($filename = readdir($dir))
         {
             echo $filename."<br>";
         }
         //关闭资源
         closedir($dir);*/
         
         /*文件操作*/
         //touch("./2.txt"); //创建文件
         //copy("./2.txt","./code/2.txt"); //复制文件
         //unlink("./code/2.txt"); //删除文件
         //echo file_get_contents("http://www.baidu.com"); //读取文件
         //file_put_contents("./2.txt","hello world"); //写入内容,会覆盖
         //readfile("http://www.baidu.com"); //读文件内容直接输出
        //$attr = file("./2.txt"); //读文件内容,然后返回每一行的数组
        
        $fp = fopen("./2.txt","r"); //打开文件资源
        
        //fwrite($fp,"bbbbbbbbbbb");//写入内容
        
        /*while(!feof($fp)) //当读取出错或者读到末尾返回true
        {
            echo fgetc($fp); //读取内容,一个字符一个字符读,读完指针下移
        }*/
        
        /*while(!feof($fp))
        {
            echo fgets($fp)."<br>"; //读取内容,每次读一行
        }*/
        
        //echo fread($fp,100); //读取内容,可以控制读取多少个字符
        
        fclose($fp);
        
        
    ?>
    </body>
    </html>

    文件上传和文件下载

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <form action="chuli.php" method="post" enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="上传"/>
    </form>
    
    <a href="../DotNET课程大纲.xlsx">下载文件</a>
    </body>
    </html>

    chuli.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <?php
    
    /*echo $_FILES["file"]["name"]."<br>";
    echo $_FILES["file"]["type"]."<br>";
    echo $_FILES["file"]["size"]."<br>";
    echo $_FILES["file"]["tmp_name"]."<br>";
    echo $_FILES["file"]["error"];*/
    
    //1.判断是否出错
    if($_FILES["file"]["error"])
    {
        echo "文件上传出错!";
    }
    else
    {
        
        //2.加限制条件
        if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/jpg") && $_FILES["file"]["size"]<=102400)
        {
            
            //3.造一个文件的存储路径
            $str = date("YmdHisms",time());
            $filename = "./images/".$str.$_FILES["file"]["name"];
            //4.判断文件是否存在
            if(file_exists($filename))
            {
                echo "该文件已经存在!";
            }
            else
            {
                //5.移动文件
                move_uploaded_file($_FILES["file"]["tmp_name"],iconv("UTF-8","gb2312",$filename));
                echo "该文件成功上传,保存在了:".$filename;
            }
        }
        else
        {
            echo "文件不符合要求!";
        }
    }
    
    ?>
    
    
    </body>
    </html>

    统计一个目录下的文件和目录的个数

    <?php
        $dirn = 0; //目录数
        $filen = 0; //文件数
    
    
        //用来统计一个目录下的文件和目录的个数
        function getdirnum($file) {
            global $dirn;
            global $filen;
                    
            $dir = opendir($file);
    
    
            while($filename = readdir($dir)) {
                if($filename!="." && $filename !="..") {
                    $filename = $file."/".$filename;
    
    
                    if(is_dir($filename)) {
                        $dirn++;
                        getdirnum($filename);  //递归,就可以查看所有子目录
                    } else {
                        $filen++; 
                    }
                }
    
            
            }
    
    
    
            closedir($dir);
    
        
        }
    
    
        getdirnum("./code");
    
    
        echo "目录数为:{$dirn}<br>";
        echo "文件数为:{$filen}<br>";

    统计一个目录下大小

    <?php
        //用来统计一个目录下大小
        function dirsize($file) {
            $size = 0;
            $dir = opendir($file);
    
            
            while($filename = readdir($dir)) {
                if($filename!="." && $filename !="..") {
                    $filename = $file."/".$filename;
    
    
                    if(is_dir($filename)) {
                        //使用递归
                        $size += dirsize($filename);
                    } else {
                        $size += filesize($filename);
                    }
                }
    
            
            }
    
    
    
            closedir($dir);
    
            return $size;
        }
    
    
    echo "code目录大小为:".(dirsize("./code")/pow(1024,1))."KB<br>";

    删除目录,文件及内容

    <?php
        function deldir($dirname) {
            if(!file_exists($dirname)) {
                die("文件夹不存在!");
            }
            //如果是文件,直接删除即可
            if(is_file($dirname)) {
                unlink($dirname);
            }
    
    
            $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("./code");
  • 相关阅读:
    boxShadow通用css效果
    electron安装+运行+打包成桌面应用+打包成安装文件+开机自启动
    electron-vue项目创建失败
    dpr——设备像素比(device pixel ratio)
    electron与vue集成
    一文让你理解vue history和hash模式实现
    vue router生命周期说明
    Vue keep-alive实践总结
    Vuejs路由过度动画
    ReactJS 的5种路由模式
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5216503.html
Copyright © 2011-2022 走看看