PHP目录操作和文件操作

PHP目录操作和文件操作

PHP 操作目录

1,目录操作概述

2,创建新目录 mkdir()
    新建一个由pathname指定的目录,创建成功方式ture,否则为false
    bool mkdir(string $pathname,[int $mode=0777,[bool $recursive=false]])
      
    $pathname:指定目录的路径
    $mode:默认mode是0777,意味着最大可能的访问权,$mode在windows下被忽略,$mode的值为八进制
    $recursive:如果指定的路径的上级目录不存在,则也会递归创建
    
    $dirname = "./static";
    mkdir($dirname,0777,true);
    

3,判断是否是一个目录is_dir()
    判断给定文件名是否是一个目录
    bool is_dir(string $filename);
    如果文件名存在且是个目录,返回true,否则返回false
    
4,判断目录或文件是否存在file_exists()
    bool file_exists(string $filename)
    可以判断文件和目录是否存在,是则返回true,否则返回false
    
5,删除目录rmdir()
    删除目录:该目录必须是空的,否则会报错
    rmdir($dirname);

6,更改目录的访问权限chmod()
    改变文件的访问权限
    bool chmod(string $filename,int $mode)
    $filename:指定文件的路径
    $mode:mode参数包含三个八进制数按顺序分别指定所有者,所有者所在的组
                以及所有人的访问限制。每一部分都可以通过加入所需的权限
                来计算出所要的权限
                数字1:文件可执行
                数字2:文件可写
                数字4:文件可读
    文件只读权限:0444
    文件夹只读权限:0555

7,取得目录或文件访问权限fileperms()
    int fileperms(string $filename)
    以十进制数组返回文件的访问权限

8,重命名或移动文件或目录rename()
    重命名或移动一个文件或目录,如果文件不存在同一目录下就是移动
    bool rename(string $filename,string $newname)

9,打开目录 opendir()
    打开目录句柄,可用于之后的closedir(),readdir(),rewinddir()调用中
    
    resource opendir(string $path)
    如果成功则返回目录句柄的resource,失败则返回FALSE
    
    $handle = opendir($dirname);    

10,读取目录中条目readdir()
    从目录句柄中读取条目
    string readdir([resource $dir_handle])
    返回目录中下一个文件的文件名,文件名以在文件系统中的排序返回
   
11,显示中文目录或文件iconv()
    字符串按要求的字符编码来转换
    string iconv(string $in_charset,string $out_charset,string $str)
    
    $in_charset:输入的字符集
    $out_charset:输出的字符集
    $str:要转换的字符串
    
    返回:返回转换后的字符串,或者在失败是返回false
    
12,关闭目录句柄 closedir()
    关闭由dir_handle指定的目录流,流必须之间被opendir()锁打开
    void closedir([resource $dir_handle)
    
    提示:如果省略$dir_handle,则默认为最后由opendir()打开的目录句柄
    节省服务器资源

综合实例:递归遍历phpMyAdmin下的所有条目

1,递归思想
    把一个相对复杂的问题转化为一个与原问题相似的规模较小的问题来解决
    
2,递归实现的条件
    确定递归公式
    确定递归边界条件(递归出口),否则会出现死循环

PHP操作文件

1,打开文件 fopen()
    打开文件或url
    resource fopen(string $filename,string $mode)
    $filename:要打开的文件
    $mode:打开的方式
    
    提示:为移植性考虑,在用fopen()打开文件时总是使用'b'标记
    返回值,成功时返回文件指针资源,如果打开失败,本函数返回false

2,打开文件的方式
    mode            说明
    'r'             只读,将文件指向文件头
    'r+'            读写方式打开
    'w'             写入方式打开,将文件指针指向文件头并将文件大小截为零,若不存在,则创建
    'w+'            读写入方式打开,将文件指针指向文件头并将文件大小截为零,若不存在,则创建
    'a'             写入,文件指针指向文件末尾,若不存在,则创建
    'a+'            读写方式打开,文件指针指向文件末尾,若不存在,则创建
    'x'             只写,并创建文件,若文件已存在,则fopen()调用失败并返回false
    'x+'            读写,并创建文件,若文件已存在,则fopen()调用失败并返回false

3,关闭文件 fclose()

4,读取指定大小文件内容fread()
    读取文件(可安全用于二进制文件)
    string fread(resource $handle,int $length);
    $handle:由fopen() 创建的handle,$length最多读取的字节数
    提示:在区分二进制文件和文本文件的系统上(如 windows)打开文件时
            fopen() 函数的mode参数要加上'b'
    返回值:返回读取的字符串,或者在失败时返回false

5,读取一行内容 fgets()
    从文件指针中读取一行
    string fgets(resource $handle,int $length)
    $handle:文件指针必须有效
    $length:从handle指向的文件中读取一行并返回长度最多为length-1字节的字符串
            碰到换行符(包括在返回值中),EOF或读完定制
            
            若无指定长度,读取1k,1024字节
            
6,读取文件内容到数组汇中file()
    把整个文件读入一个数组中
    array file(string $filename,[int $flags=0])
    
    $filename:文件路径
    $flags:附加选项
    FILE_USE_INCLUDE_PATH(1):在include_path中查找文件
    FILE_IGNORE_NEW_LINE(2):在数组的每个元素末尾不添加换行符
    FILE_SKIP_EMPTY_LINES(4):跳过空行
    
    注意:不需要打开和关闭文件

7,读取文件内容到字符串中file_get_contents()
    建整个文件读入一个字符串
    string file_get_contents(stirng $filename)
    返回值:返回读取的数据,失败时返回false
    
8,实例:读取记事本中的内容,并用表格展示出来

9,写入文件
    int fwrite(resource $handle,string $string);
    返回:返回写入的字符数,出现错误时侧返回false

10,将一个字符串写入文件
    和依次调用fopen(),fwrite()及fclose()功能一样
    int file_put_contents(string $filename,mixed $data,[int $flags=0])
    参数:
        $filename 要被写入数据的文件名
        $data   要写入的数据,类型可以使string,array(一维数组)
        $flags  附加选项
        FILE_USE_INCLUDE_PATH(1) 在include目录里搜索filename
        FILE_APPEND(8) 如果文件filename已经存在,追加数据而不是覆盖
        LOCK_EX(2)在写入时获得一个独占额
        
11,拷贝文件
    将文件从source拷贝到dest
    bool copy(string $source,string $dest)
    如果目标文件存在,则会覆盖

12,删除文件
    bool unlink(string $filename)
    可以删除虚拟空间之外的文件,但必须使用相对路径,必须有权限
    删除的文件不会进入回收站

13,其他文件操作函数
    filesize()  可以获取文件大小,单位为字节
    is_writable()   判断文件是否可写
    is_readable()   判断文件是否可读
    feof()          判断文件指针是否到达文件结尾
    filectime()     获取创建文件的时间
    fileatime()     获取文件最新访问时间
    filemtime()     获取文件最后修改时间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值