zoukankan      html  css  js  c++  java
  • php 文件夹 与 文件目录操作

    php文件夹操作函数

    string basename ( string path [, string suffix] )
    给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
    在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

    string dirname ( string path )

    给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
    在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

    array pathinfo ( string path [, int options] )

    pathinfo() 返回一个联合数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。
    可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。

    string realpath ( string path )

    realpath() 扩展所有的符号连接并且处理输入的 path 中的 ‘/./', ‘/../' 以及多余的 ‘/' 并返回规范化后的绝对路径名。返回的路径中没有符号连接,'/./' 或 ‘/../' 成分。
    realpath() 失败时返回 FALSE,比如说文件不存在的话。在 BSD 系统上,如果仅仅是 path 不存在的话,PHP 并不会像其它系统那样返回 FALSE。

    bool is_dir ( string filename )

    如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。
    注: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

    resource opendir ( string path [, resource context] )

    打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。

    string readdir ( resource dir_handle )

    返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

    void closedir ( resource dir_handle )

    关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开。

    void rewinddir ( resource dir_handle )

    将 dir_handle 指定的目录流重置到目录的开头。

    array glob ( string pattern [, int flags] )

    glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。
    返回一个包含有匹配文件/目录的数组。如果出错返回 FALSE。

    有效标记为:
    GLOB_MARK - 在每个返回的项目中加一个斜线
    GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
    GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
    GLOB_NOESCAPE - 反斜线不转义元字符
    GLOB_BRACE - 扩充 {a,b,c} 来匹配 ‘a','b' 或 ‘c'
    GLOB_ONLYDIR - 仅返回与模式匹配的目录项

    注: 在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 库的系统上不可用。
    GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误
    注: GLOB_ERR 是 PHP 5.1 添加的。

    php文件目录操作

    新建文件
    1、先确定要写入文件的内容
    $content = '你好';
    2、打开这个文件(系统会自动建立这个空文件)
    //假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件',$fp下面要用到,表示指向某个打开的文件。
    $fp = fopen('../file.txt', 'w');
    3、将内容字符串写入文件
    //$fp告诉系统要写入的文件,写入的内容是$content
    fwrite($fp, $content);
    4、关闭文件
    fclose($fp);
    说明:PHP5中提供了更方便的函数file_put_contents,上面的4步可以这样完成:
    $content = '你好';
    file_put_contents('file.txt',$content);

    删除文件
    //删除当前目录下的arch目录下的文件abc.txt
    unlink('arch/abc.txt');
    说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:
    $deleteResult = unlink('arch/abc.txt');

    获取文件内容
    //假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。
    $content = file_get_contents('../file.txt');

    修改文件内容
    操作方法与新建内容基本一样

    重命名文件或目录
    //将当前目录下的子目录a下面的文件1.gif重命名为2.gif。
    rename('/a/1.gif', '/a/2.gif');
    说明:对目录也一样。系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否重命名成功。
    $renameResult = rename('/a/1.gif', '/a/2.gif');
    如果要移动文件或目录,只要将重命名后的路径设置为新的路径就可以了:
    //将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif。
    rename('/a/1.gif', '/b/2.gif');
    不过要注意,如果目录b不存在,就会移动失败。

    复制文件
    //将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif。
    copy('/a/1.gif', '/b/1.gif');
    说明:不能对目录进行此项操作。
    如果目标文件(上面的/b/1.gif)已经存在,原来的文件将被覆盖。
    系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否复制成功。
    $copyResult = copy('/a/1.gif', '/b/1.gif');

    移动文件或目录
    操作方法和重命名一样

    文件或目录是否存在
    //检查上级目录下的文件logo.jpg是否存在。
    $existResult = file_exists('../logo.jpg');
    说明:如果文件存在系统返回true,否则返回false。可以对目录进行同样的操作。

    获取文件大小
    //获取上级目录下的文件logo.png的大小。
    $size = filesize('../logo.png');
    说明:系统会返回一个数字,表示文件的大小是多少字节(bytes)。

    新建目录
    //在当前目录下的目录a下面新建目录b。
    mkdir('/a/b');
    说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否新建成功:
    $mkResult = mkdir('/a/b');

    删除目录
    //删除当前目录下的目录a下面的子目录b。
    rmdir('/a/b');
    说明:只能删除非空的目录,否则必须先删除目录下的子目录和文件,再删除总目录
    系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:
    $deleteResult = rmdir('/a/b');

    获取目录中的所有文件名
    1、先打开要操作的目录,并用一个变量指向它
    //打开当前目录下的目录pic下的子目录common。
    $handler = opendir('pic/common');
    2、循环的读取目录下的所有文件
    /*其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环*/
    while( ($filename = readdir($handler)) !== false )  {
          3、目录下都会有两个文件,名字为'.'和‘..',不要对他们进行操作
          if($filename != "." && $filename != "..") {
          4、进行处理
          //这里简单的用echo来输出文件名
          echo $filename;
          }
    }
    5、关闭目录
    closedir($handler);

    对象是否是目录
    //检查上级目录下的目标对象logo.jpg是否是目录。
    $checkResult = is_dir('../logo.jpg');
    说明:如果目标对象是目录系统返回true,否则返回false。上面例子的$checkResult当然是false。

    对象是否是文件
    //检查上级目录下的目标对象logo.jpg是否是文件。
    $checkResult = is_file('../logo.jpg');
    说明:如果目标对象是文件,系统返回true,否则返回false。上面例子的$checkResult当然是true。

  • 相关阅读:
    利用递归分割(Split)字符串
    SQL Server2012 T-SQL基础教程--读书笔记(1-4章)
    kindeditor编辑器的使用
    echarts绘制四川地图
    Windows下搭建PHP开发环境(Apache+PHP+MySQL)+调试工具Xdebug的配置
    给搜索关键字添加高亮,加以颜色区分
    SQL 生成6位随机数并MD5加密输出
    微信小程序登录 .net 后端实现
    钉钉小程序http post 请求
    浅谈Web Api配合SignalR的跨域支持
  • 原文地址:https://www.cnblogs.com/aini521521/p/7220267.html
Copyright © 2011-2022 走看看