• <基础> PHP 文件、目录操作


    php文件目录操作

    • 目录操作
      • is_dir ( $path ) 判断当前路径是否为目录 ,返回布尔
      • opendir ( $path ) 打开路径目录,返回资源
      • readdir ( $handle ) 读取当前打开目录下一个文件,同时指针向前移动一位,返回字符串 (文件/目录名)
      • closedir ( $handle ) 关闭当前打开目录 返回布尔
      • getcwd ( ) 获得当前工作目录
      • rmdir 删除目录,删除前必须先删除目录下所有文件和目录

      代码:列出指定目录下所有文件和文件名

    function traversal_dir($path, $deep = 0) {
        if (is_dir($path)) {
            $handle = opendir($path);
            while (($file = readdir($handle)) !== false) {
                if ($file == '.' || $file == '..') {
                    continue;
                }
                echo str_repeat('-', 2 * $deep) . $file . '</br>';
                if (is_dir($path . '/' . $file)) {
                    traversal_dir($path . '/' . $file, $deep + 1);
                }
            }
        }
    }
    
    traversal_dir('./');
    • 文件操作
      • 路径部分
        • basename ( $path ) : 返回指定路径的文件名部分  返回String
        • dirname ( $path ) : 返回指定路径的目录名部分  返回string
      • 操作部分
        • fopen ( $file ) :打开文件或者 URL 返回资源
        • fread ( resource $handle , int $length ) : 读取文件,可指定长度
        • fwrite ( resource $handle , string $string [, int $length ] ) : 返回写入字符串大小,如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
        • fgets ( resource $handle [, int $length ] ) : 读取一行文本,length指定一行文本长度
        • fclose ( resource $handle ) : 关闭文件
      • stat 获得文件信息
      • 判断部分
        • is_file ( $path ) :判断指定 路径是否为文件
        • file_exists ( $path )  : 检查目录或者文件是否存在
      • filesize ( $path ) 获得文件大小  int
      • filetype ( $path ) 获得文件类型 string (可能值:fifo,char,dir,block,link,file 和 unknown)
      • rename ( string $oldname , string $newname [, resource $context ] ) 重命名或者移动  返回布尔
      • unlink ( $path ) 删除文件  返回布尔
      • file_get_contents 将整个文件读如一个字符串
      • file_put_contents 将一个字符串写入文件

      代码:每执行一次文件,向文件头部追加 Hello word

    $path = './hello.txt';
    if (!file_exists($path)) {
        $handle = fopen($path, 'w+');
        fwrite($handle, 'Hello word' . '
    ');
        fclose($handle);
    } else {
        $handle = fopen($path, 'r');
        $content = fread($handle, filesize($path));
        $content = 'Hello word 
    ' . $content;
        fclose($handle);
        $handle = fopen($path, 'w');
        fwrite($handle, $content);
        fclose($handle);
    }

      代码:遍历删除文件夹及文件夹下所有文件

    function traversal_delete_dir($path) {
        if (is_dir($path)) {
            $handle = opendir($path);
            while (($file = readdir($handle)) !== false) {
                if ($file == '.' || $file == '..') {
                    continue;
                }
                if (is_dir($path . '/' . $file)) {
                    traversal_delete_dir($path . '/' . $file);
                } else {
                    if (unlink($path . '/' . $file)) {
                        echo '删除文件' . $file . '成功';
                    }
                }
            }
            closedir($handle);
            rmdir($path);
        }
    }
    
    traversal_delete_dir('./shop_api');
  • 相关阅读:
    android 各国语言对应的缩写
    Android 程式开发:(十三)特殊碎片 —— 13.2 DialogFragment
    Android Bitmap和Canvas学习笔记 [转]
    Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
    XAMPP 在windows下无法启动Apache解决方案
    深入浅出Java并发包—锁机制(一)
    深入浅出Java并发包—锁(Lock)VS同步(synchronized)
    深入浅出Java并发包—CAS机制
    深入浅出Java并发包—指令重排序
    深入浅出Java并发包—原子类操作
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9253330.html
Copyright © 2020-2023  润新知