zoukankan      html  css  js  c++  java
  • PHP中的文件系统处理(一)

     PHP文件系统处理
         所有文件处理都是使用系统函数完成的。
         是基于Linux/Unix系统为模型
     
           文件系统处理的作用:
               1. 所有的项目离不开文件处理
               2. 可以用文件长时间保存数据
               3. 建立缓存, 服务器中文件操作
     
           文件处理
             1. 文件类型
                 以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型
                 在Linux/Unix下, block, char, dir, fifo, file, link, unknown和种型
                 block :块设置文件,磁盘分区,软驱, cd-rom等
                 char: 字符设备,I/O 以字符为单位, 键盘,打印机等
                 dir: 目录也是文件的一种
                 fifo:
                 file:
                 link:
                 unknown    
     
                  filetype("目录或文件名")   取得文件类型

    <?php
    echo filetype("./test.txt");
    ?>

     
                  is_array();
                  is_int();
                  is_string();
                  is_null;
                  is_bool();
                  
            is_dir -- 判断给定文件名是否是一个目录
            is_executable -- 判断给定文件名是否可执行
            is_file -- 判断给定文件名是否为一个正常的文件
            is_link -- 判断给定文件名是否为一个符号连接
            is_readable -- 判断给定文件名是否可读
            is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的
            is_writable -- 判断给定的文件名是否可写
            is_writeable -- is_writable() 的别名

    <?php
    //is_dir -- 判断给定文件名是否是一个目录
    var_dump(is_dir("./test.txt"));
    echo "<br>";
    
    //is_executable -- 判断给定文件名是否可执行
    var_dump(is_executable("./test.txt"));
    echo "<br>";
    
    //is_file -- 判断给定文件名是否为一个正常的文件
    var_dump(is_file("./test.txt"));
    echo "<br>";
    
    //is_link -- 判断给定文件名是否为一个符号连接
    var_dump(is_link("./test.txt"));
    echo "<br>";
    
    //is_readable -- 判断给定文件名是否可读
    var_dump(is_readable("./test.txt"));
    echo "<br>";
    
    //is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的
    var_dump(is_uploaded_file("./test.txt"));
    echo "<br>";
    
    //is_writable -- 判断给定的文件名是否可写
    var_dump(is_writeable("./test.txt"));
    echo "<br>";
    
    //is_writeable -- is_writable() 的别名
    ?>


             2. 文件的属性
                 file_exists();   检查文件或目录是否存在
                 filesize();
                 is_readable();
                 is_writeable();
                 filectime();
                 filemtime();
                 fileatime();
                 stat();
     

    <?php
    /*
    file_exists();   检查文件或目录是否存在
    filesize();     
    filectime();
    filemtime();
    fileactime();
    stat();
    */
    $filename="./test.txt";
    
    //file_exists();   检查文件或目录是否存在
    var_dump(file_exists($filename));
    echo "<br>";
    
    //filesize();    取得文件大小
    echo filesize($filename);
    echo "<br>";
    
    //filectime();    取得文件的 inode 修改时间
    echo date("F d Y H:i:s.", filectime($filename));
    echo "<br>";
    
    //filemtime();  取得文件修改时间
    echo date("F d Y H:i:s.", filemtime($filename)); 
    echo "<br>";
    
    //fileatime();   取得文件的上次访问时间
    
    echo date("F d Y H:i:s.",fileatime($filename));
    echo "<br>";
    
    //stat();   给出文件的信息
    echo "<pre>";
    print_r(stat($filename));
    echo "</pre>";
    echo "<br>";
    ?>


            3.文件的属性
                相对路径:(相对于当前目录的上级和下级目录)
                    .    当前目录
                    ..     上一级目录
                路径分隔符:
                    在Linux/Unix使用“/”
                    在windows中使用“”和“/”都可以
                绝对路径:
                    /  根路径
                    /images/imdex.php
                    这个根指的是操作系统的根或是存放网站的文档根目录
                        如果是在服务器中执行(通过PHP文件处理函数执行)路径,则“根”指的是操作视同的根
                        如果程序是下载的客户端,再访问服务器中的文件时,只有通过Apache访问,“根”指的是文档根目录。
                basename(url);   返回路径中的文件名部分
                dirname(url);    返回路径中的目录部分
                pathinfo(url);   返回文件路径的信息

    <?php
    $url1="./aaa/bbb/index.php";
    $url2="../www/yy/login.rar";
    $url3="C:/appserv/www/demo.html";
    $url4="http://localhost/yyy/ww.gif";
    
    //返回路径中的文件名部分
    echo basename($url1)."<br>";
    echo basename($url2)."<br>";
    echo basename($url3)."<br>";
    echo basename($url4)."<br>";
    echo "<hr>";
    
    //返回路径中的目录部分
    echo dirname($url1)."<br>";
    echo "<hr>";
    
    //返回文件路径的信息
    echo "<pre>";
    print_r(pathinfo($url1));
    echo "<pre>";
    ?>


            4.文件的操作相关的函数
                创建文件  touch("文件名");
                删除文件  unlink("文件路径");
                移动文件  为文件重新命名  rename("当前文件路径","目标文件路径");
                复制文件  copy("当前","目标");
            

    <?php
    //创建文件
    touch ("./test.txt");
    
    //删除文件
    //unlink("D:/APMServ5.2.6/www/htdocs/php/3/1/test.txt");
    //unlnk("test.txt");
    
    //移动文件  为文件重新命名
    //rename("./test.txt", "d:/test2.txt");
    
    //复制文件,将前者复制到后者中
    copy("test.txt", "d:/test4.txt")
    ?>


                一定要有PHP执行这个文件的权限

            和权限设置有关的函数(在Linux下)
            chgrp----改变文件所属的组
            chmod----改变文件模式
            chown----改变文件的所有者
            filegroup-----取得文件的组
            fileowner-----取得文件的所有者

  • 相关阅读:
    JavaScript判断图片是否加载完成的三种方式 (转)
    支付宝异步通知notify_url接收不了问题解决(转)
    支付宝接口使用文档说明 支付宝异步通知(notify_url)与return_url
    Nginx Cache中$request_filename(转)
    win7下搭建nginx+php的开发环境(转)
    Nginx报出504 Gateway Timeout错误2
    BZOJ 3990 [SDOI 2015] 排序 解题报告
    BZOJ 3992 [SDOI 2015] 序列统计 解题报告
    BZOJ 3993 [SDOI 2015] 星际战争 解题报告
    BZOJ 3971 Матрёшка 解题报告
  • 原文地址:https://www.cnblogs.com/Y-HKL/p/5368522.html
Copyright © 2011-2022 走看看