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

    三种目录表示:

    ./     代表当前目录

    ../    代表父级目录

    /    代表根目录

    常用的文件操作函数有

    通用读写:                  fpen()  fwrite() fread() fclose() fgets() feof() 

    PHP快速读写            file_put_contents()  file_get_contents()

    获取文件信息            basename()  dirname()  fstat() filesize() scandir()

    文件判断:        file_exists()  is_file()  is_dir()

    增删移复制     mkdir()  unlink() rename() copy()

     

    fopen 的模式

    'r'

    只读方式打开,将文件指针指向文件头。

    'r+'

    读写方式打开,将文件指针指向文件头。

    'w'

    写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

    'w+'

    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

    'a'

    写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

    'a+'

    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

    'x'

    创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

    'x+'

    创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

     

    查找手册:http://php.net/manual/zh/ref.filesystem.php

    获取目录下所有文件以及子目录的方法

    方式一:

    $path = dirname(__FILE__);
    
    $file = [];
    function getFiles($path,&$file)
    {
        $res = scandir($path);
        $file = array_slice($res,2);
        foreach ($file as &$val){
            $newPath = $path.'/'.$val;
            if(is_dir($newPath)){
                getFiles($newPath,$val);
            }
        }
    }
    
    getFiles($path,$file);
    var_dump($file);

    方式二:

    $dir = dirname(__FILE__).'/node_modules';
    
    $file = [];
    function getFile2($path,&$files)
    {
    
        if (is_dir($path)) {
            if ($dh = opendir($path)) {
                while (($file = readdir($dh)) !== false) {
                    if ($file != '.' && $file != '..') {
                        $newPath = $path.'/'.$file;
                        if (is_dir($newPath)) {
                            $child = [];
                            getFile2($newPath,$child);
                            $files[] = $child;
                        } else {
                            $files[] = $file;
                        }
                    }
                }
                closedir($dh);
            }
        }
    }
    
    getFile2($dir,$file);
    var_dump($file);
  • 相关阅读:
    python之网络编程
    python之面相对象进阶
    python之面相对象程序设计
    运行期优化
    切勿用普通的for循环遍历LinkedList
    NIO网络编程
    虚拟机字节码执行引擎
    AIO(异步IO)
    选择器(Selector)
    通道(Channel)
  • 原文地址:https://www.cnblogs.com/dpdp/p/7488924.html
Copyright © 2011-2022 走看看