zoukankan      html  css  js  c++  java
  • PHP面试 PHP基础知识 七(文件及目录处理)

    文件操作

      文件打开函数 
        fopen()函数
        //用来打开一个文件   打开时需要指定打开模式
    
        语法:fopen( filename, mode, include_path, context);
         filename   必须    要打开的文件或URL
         mode       必须    该文件/流的访问类型。
         include_path  可选  需要在include_path中检索文件,可以设为1或true
         context    可选    文件句柄的环境  可以修改流的行为选择
        
        mode 参数
            r  只读方式打开  文件指针指向文件头
            r+  读写方式打开  文件指针指向文件头
            w 写方式打开 文件指针指向文件头 将文件内容清空 不存在创建新文件
            w+ 读写方式打开文件指针指向文件头  将文件内容清空  不存在创建新文件
            a   写入方式打开  文件指针指向文件末尾 不存在创建新文件
            a+ 读写方式打开 文件指针指向末尾  不存在创建新文件
            x   创建并以写入方式打开,将文件指针指向文件头。如果文件已经存在fopen()调用失败返回false
            x+ 创建并以读写方式打开,将文件指针指向文件头。如果文件已经存在fopen()调用失败返回false
      文件写入函数
    fwrite()   写入文件函数
    
    语法:fwrite(file,string,lenght);
    
    file  要写入的打开文件
    string   要写入打开文件的字符串
    length  设置要写入文件的最大字节数
    
    fputs()  fwrite的别名
    
    语法:fputs(file,string,length);
    
    参数描述与fwrite相同
      文件读取函数
    fread()  读取函数
    
    语法:fread(file,length);
    
    file  读取打开的文件
    
    length   读取的最大字节数
    
    
    
    fgets()  读取函数   从文件指针中读取一行
    
    语法:fgets(file,length);
    
    file   要读取的文件
    
    length  要读取的字节数  默认是1024字节
    
    
    
    fgetc()  读取函数   从文件指针中读取一个字符
    
    语法:fgetc(file)
    
    file    要读取的文件
    注意:该函数可能返回布尔值 false,但也可能返回一个与 false 等值的非布尔值,例如 0 或者 ""。
      文件关闭函数
    fclose()  文件关闭函数
    
    语法:fclose(file);
    
    file   关闭的文件
        不需要fopen打开文件的函数
    file_get_contents()  把整个文件读入一个字符串中
    
    此函数可安全用于二进制对象
    
    语法:file_get_contents(path,include_ptah,context,start,max_length)
    
    参数
        path 必须 要读取的文件
        以下参数可选
        include_path 想在include_path中搜寻文件  可以设置为1
        context 可以修改流的行为选项,使用null,则忽略   PHP5.0添加
        start  文件开始读取的位置     PHP5.1新加参数
        max_length 设置读取的字节数    PHP5.1新加参数
    
    
    
    file_put_contents()   把一个字符串写入文件中
    
    语法:file_put_contents(file,data,mode,context)
    
    参数
    file 必须  要写入的数据的文件  不存在创建新文件
    data  可选  写入文件的数据   可以是字符串 数组  或数据流
    mode 可选  如何打开写入文件  可能的值  FILE_USE_INCLUDE_PATH
                                                    FILE_APPEND
                                                    LOCK_EX
    context 可选  可以修改流的行为选项  若使用null   则忽略
      其他读取函数
    file()   把整个文件读入一个数组中
    
    语法:file(path,include_path,context);
    
    参数
        path   必须    要读取的文件
        include_path  可选  想要在include_path 中搜寻文件  该参数设为1
        context  可选  可以修改流的行为选项 使用null  则忽略
    
    
    
    readfile()   输出一个文件
    
    语法:readfile(filename,include_path,context);
    
    参数
        filename  必须  要读取的文件
        include_path 可选  想要在include_path 中搜寻文件  该参数设为true
        context  可选  可以修改流的行为选项
      访问远程文件

        需要在php.ini配置文件中开启 allow_url_fopen,HTTP协议连接只能使用只读,FTP协议可以使用只读或只写

     

    目录操作

      名称相关函数
    basename()  返回路径中的文件名
    
    语法:basename(path,suffix);
    参数
        path  文件路径
        suffix  文件名后缀   返回结果不带后缀名
        
        $path = "d:/test/text.txt";
        
        echo basename($path);  //输出结果text.txt
        
        echo basename($path,'.txt');  //输出结果 text
    
    
    dirname()     返回路径中目录部分
    
    语法:dirname(path);
    参数
        path  文件路径
        
        $path = 'd:/test/test.txt';
    
        echo dirname($path);    //输出 d:/test
      目录读取
    opendir()  打开目录
    
    语法:opendir(path,context);
    参数
        path    必需  要打开的目录路径
        
        context   可以修改目录流的行为
    
    
    readdir()    返回目录中下一个文件的文件名
    
    语法:readdir(dir_handle);
    参数
         dir_handle   由opendir()打开的目录句柄资源
    
    
    closedir()      关闭目录
    
    语法:closedir(dir_handle);
    参数
         dir_handle   由opendir()打开的目录句柄资源
    
    
    
    rewinddir()     重置由opendir()创建的目录句柄
    
    语法:rewwinddir(dir_handle);
    参数
         dir_handle   由opendir()打开的目录句柄资源
    
    
    实例
         $dir = "./images/";  
    
         // 打开目录,然后读取其内容
     if (is_dir($dir)){
    
             if ($dh = opendir($dir)){
    
                      // 列出 images 目录中的文件
                 while (($file = readdir($dh)) !== false){
                      echo "filename:" . $file . "<br>";
                  }
                 rewinddir();
                // 再次列出 images 目录中的文件
                 while (($file = readdir($dh)) !== false){
                      echo "filename:" . $file . "<br>";
                }
                closedir($dh);
         }
    }
      目录删除
    rmdir()   删除空的目录
    
    语法:rmdir(path,context);
    参数
        path   必需   要删除的目录
        context   可以修改流的行为的选项
      创建目录
    mkdir()   创建目录
    
    创建成功返回true  失败返回false
    语法:mkdir(path,mode,recursive,context);
    参数
        path    要创建的目录
        mode  目录权限    默认  0777
        recursive   是否设置递归模式
        context   可以修改流的行为的选项
      文件大小 
    filesize()   返回指定文件的大小
    
    成功返回文件大小的字节数   失败返回false
    
    语法:filesize(filename);
    
    参数
    filename  要检查的文件
    
    echo  filesize('text.txt');
    
    输出 :文件字节数  20
      目录大小
    disk_free_space()    返回目录中可用的空间
    
    语法:disk_free_space(disrectory);
    
    参数
         disrectory   要检查的目录
    
        echo disk_free_space("C:");
    
    输出:可用的字节数    209693288558
    
    
    disk_total_space()   返回指定目录磁盘的总大小
    
    语法:disk_total_space(directory)
    
    参数
         disrectory   要检查的目录
    
         echo disk_total_space("C:");
         
         输出:返回空间总字节数    509693888668
      文件拷贝
    copy()    复制文件
    
    语法:copy(source,destination)
    参数
         source     要复制的文件
         destination   复制文件的目的地
    
        echo copy("a.txt","b.txt");
    
        输出:echo   true显示1   成功返回true  失败返回false
      删除文件
    unlink()    删除文件
    
    若成功,则返回 true,失败则返回 false。
    
    语法:unlink(filename,context)
    参数
         filename   要删除的文件。
         context    可修改流的行为的一套选项
    
         $res = unlink("test.txt");
    
         var_dump($res);
    
         输出:true   
      文件类型 
    filetype()   返回文件类型
    
    成功  返回 7 种可能的值fifo
        char
        dir
        block
        link
        file
        unknown   
    失败  返回false
    
    语法:filetype(filename)
    参数
        要检查的文件
    
        echo filetype("test.txt");
        
        输出:file    
      重命名文件或者目录
    rename()   重命名文件或目录
    
    若成功,则该函数返回 true。若失败,则返回 false
    
    语法:rename(oldname,newname,context)
    
    参数
         oldname    要重命名的文件或目录
         newname   文件或目录的新名称
         context     可修改流的行为的一套选项
      文件截取
    ftruncate()     把文件截断到指定的长度
    
    成功则返回 TRUE,否则返回 FALSE
    
    语法:ftruncate(file,size)
    参数
        file   要截断的打开文件
        size  新的文件大小
    
    
        //检查文件大小
        echo filesize("test.txt");
    
        $file = fopen("test.txt", "a+");  打开文件
        ftruncate($file,100);  //截取文件
        fclose($file);  //关闭文件
    
        //清空缓存,再次检查文件大小
        clearstatcache();
        echo filesize("test.txt");
      文件属性
    file_exists()     检查文件或目录是否存在
    
    文件或目录存在则返回 true,否则返回 false
    
    语法:file_exists(path)
    参数
        path  要检查的路径
    
    
    
    
    is_readable()    判断指定文件名是否可读
    
    定的文件或目录存在并且可读,则返回 TRUE。
    
    语法:is_readable(file)
    参数 
         file   要检查的文件
    
    
    
    is_writable()    判断指定的文件是否可写
    
    文件存在并且可写则返回 true
    
    语法:is_writable(file)
    参数
         file   要检查的文件
    
    
    
    is_executable()  文件是否可执行
    
    如果文件存在且可执行,则返回 true。
    
    语法:is_executable(file)
    参数
         file   要检查的文件
    
    
    
    filectime()   返回指定文件inode上次修改时间
    
    语法:fileatime(file)
    参数
         file   要检查的文件
    
    
    
    fileatime()     文件的上次访问时间
    
    语法:fileatime(file);
    参数
         file   要检查的文件
    
    
    filemtime()    返回文件内容上次的修改时间
    
    语法:filemtime(file);
    参数
         file   要检查的文件
      文件锁
    flock()  锁定或释放文件
    
    若成功,则返回 true。若失败,则返回 false。
    
    语法:flock(file,lock,block)
    参数
        file   要锁定或释放的已打开的文件
        lock  使用哪种锁定类型
        block      设置为 1 或 true,则当进行锁定时阻挡其他进程
    
    lock 参数可以是以下值之一:
    
    要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。
    要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。
    要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。
    如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。
      文件指针
    ftell()      在打开文件中的当前位置
    
    该函数返回文件指针的当前位置。若失败,则返回 false。
    语法:ftell(file)
    参数
        file    要检查的已打开文件
    
    fseek()    在打开的文件中定位
    
    $file = fopen("test.txt","r");
    
        // 输出当前位置
        echo ftell($file);
    
        // 改变当前位置
        fseek($file,"15");
    
        // 再次输出当前位置
        echo ftell($file);
    
        fclose($file);
    
    输出: 0  15
    
    rewind()   将文件指针的位置倒回文件的开头
    
    若成功,则返回 true。若失败,则返回 false。
    
    语法:rewind(file)
    
    参数
        file   已打开的文件
    
        $file = fopen("test.txt","r");
    
        //改变文件指针的位置
        fseek($file,"15");
    
        //把文件指针设定为 0
        rewind($file);
    
        fclose($file);
  • 相关阅读:
    《数据库原理》课程笔记 (Ch04-数据库管理系统)
    《数据库原理》课程笔记 (Ch03-数据库语言)
    《操作系统》课程笔记(Ch07-死锁)
    《数据库原理》课程笔记 (Ch02-数据模型)
    《数据库原理》课程笔记 (Ch01-引论)
    《计算机网络》课程笔记 (Ch02-应用层)
    《ES6标准入门》读书笔记 第5章
    《ES6标准入门》读书笔记 第4章
    《ES6标准入门》读书笔记 第3章
    《计算机网络》课程笔记 (Ch01-计算机网络和因特网)
  • 原文地址:https://www.cnblogs.com/dcrq/p/11051768.html
Copyright © 2011-2022 走看看