• PHP-文件、目录相关操作


    PHP-文件、目录相关操作

    一  目录操作(Directory 函数允许获得关于目录及其内容的信息)

     相关函数:

    函数描述
    chdir() 改变当前的目录。
    chroot() 改变根目录。
    closedir() 关闭目录句柄。
    dir() 返回 Directory 类的实例。
    getcwd() 返回当前工作目录。
    opendir() 打开目录句柄。
    readdir() 返回目录句柄中的条目。
    rewinddir() 重置目录句柄。
    scandir() 返回指定目录中的文件和目录的数组。

    ps:详解:http://www.w3school.com.cn/php/php_ref_directory.asp

    二  文件操作

    运行环境区别:当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符。而在 Windows 平台上,正斜杠 (/) 和反斜杠 () 均可使用。

    相关函数:

    函数描述PHP
    basename() 返回路径中的文件名部分。 3
    chgrp() 改变文件组。 3
    chmod() 改变文件模式。 3
    chown() 改变文件所有者。 3
    clearstatcache() 清除文件状态缓存。 3
    copy() 复制文件。 3
    delete() 参见 unlink() 或 unset()。  
    dirname() 返回路径中的目录名称部分。 3
    disk_free_space() 返回目录的可用空间。 4
    disk_total_space() 返回一个目录的磁盘总容量。 4
    diskfreespace() disk_free_space() 的别名。 3
    fclose() 关闭打开的文件。 3
    feof() 测试文件指针是否到了文件结束的位置。 3
    fflush() 向打开的文件输出缓冲内容。 4
    fgetc() 从打开的文件中返回字符。 3
    fgetcsv() 从打开的文件中解析一行,校验 CSV 字段。 3
    fgets() 从打开的文件中返回一行。 3
    fgetss() 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 3
    file() 把文件读入一个数组中。 3
    file_exists() 检查文件或目录是否存在。 3
    file_get_contents() 将文件读入字符串。 4
    file_put_contents() 将字符串写入文件。 5
    fileatime() 返回文件的上次访问时间。 3
    filectime() 返回文件的上次改变时间。 3
    filegroup() 返回文件的组 ID。 3
    fileinode() 返回文件的 inode 编号。 3
    filemtime() 返回文件的上次修改时间。 3
    fileowner() 文件的 user ID (所有者)。 3
    fileperms() 返回文件的权限。 3
    filesize() 返回文件大小。 3
    filetype() 返回文件类型。 3
    flock() 锁定或释放文件。 3
    fnmatch() 根据指定的模式来匹配文件名或字符串。 4
    fopen() 打开一个文件或 URL。 3
    fpassthru() 从打开的文件中读数据,直到 EOF,并向输出缓冲写结果。 3
    fputcsv() 将行格式化为 CSV 并写入一个打开的文件中。 5
    fputs() fwrite() 的别名。 3
    fread() 读取打开的文件。 3
    fscanf() 根据指定的格式对输入进行解析。 4
    fseek() 在打开的文件中定位。 3
    fstat() 返回关于一个打开的文件的信息。 4
    ftell() 返回文件指针的读/写位置 3
    ftruncate() 将文件截断到指定的长度。 4
    fwrite() 写入文件。 3
    glob() 返回一个包含匹配指定模式的文件名/目录的数组。 4
    is_dir() 判断指定的文件名是否是一个目录。 3
    is_executable() 判断文件是否可执行。 3
    is_file() 判断指定文件是否为常规的文件。 3
    is_link() 判断指定的文件是否是连接。 3
    is_readable() 判断文件是否可读。 3
    is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的。 3
    is_writable() 判断文件是否可写。 4
    is_writeable() is_writable() 的别名。 3
    link() 创建一个硬连接。 3
    linkinfo() 返回有关一个硬连接的信息。 3
    lstat() 返回关于文件或符号连接的信息。 3
    mkdir() 创建目录。 3
    move_uploaded_file() 将上传的文件移动到新位置。 4
    parse_ini_file() 解析一个配置文件。 4
    pathinfo() 返回关于文件路径的信息。 4
    pclose() 关闭有 popen() 打开的进程。 3
    popen() 打开一个进程。 3
    readfile() 读取一个文件,并输出到输出缓冲。 3
    readlink() 返回符号连接的目标。 3
    realpath() 返回绝对路径名。 4
    rename() 重名名文件或目录。 3
    rewind() 倒回文件指针的位置。 3
    rmdir() 删除空的目录。 3
    set_file_buffer() 设置已打开文件的缓冲大小。 3
    stat() 返回关于文件的信息。 3
    symlink() 创建符号连接。 3
    tempnam() 创建唯一的临时文件。 3
    tmpfile() 建立临时文件。 3
    touch() 设置文件的访问和修改时间。 3
    umask() 改变文件的文件权限。 3
    unlink() 删除文件。 3

     ps:详解:http://www.w3school.com.cn/php/php_ref_filesystem.asp

    相关详解:

    1. fopen -- 打开文件或者 URL

    mode 说明
    'r' 只读方式打开,将文件指针指向文件头。
    'r+' 读写方式打开,将文件指针指向文件头。
    'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,
    'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE
    eg:

    $handle = fopen("/home/rasmus/file.txt", "r");

    2. file -- 把整个文件读入一个数组中(此函数是很有用的)
    和 file_get_contents() 一样,只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE。
    eg:

    代码
    $lines = file('http://www.example.com/');
    // 在数组中循环,显示 HTML 的源文件并加上行号。
    foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br /> ";
    }
    // 另一个例子将 web 页面读入字符串。参见 file_get_contents()。
    $html = implode('', file ('http://www.example.com/'));

    3. fgets -- 从文件指针中读取一行
    从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
    eg:

    $handle = fopen("/tmp/inputfile.txt", "r");
    if ($handle) {
    while (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    echo $buffer;
    }
    fclose($handle);
    }

    4. fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记
    和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。

       可以用可选的第三个参数指定哪些标记不被去掉


       另:对的目录的操作:
    1. opendir -- 打开目录句柄,打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。
    2. readdir -- 从目录句柄中读取条目,返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
    eg:

    代码
    // 注意在 4.0.0-RC2 之前不存在 !== 运算符

    if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle ";
    echo "Files: ";
      
    while (false !== ($file = readdir($handle))) {
    echo "$file ";
    }
       
    while ($file = readdir($handle)) {
    echo "$file ";
    }
         closedir($handle);
    }


    3. scandir -- 列出指定路径中的文件和目录(很有用),返回一个 array,包含有 directory 中的文件和目录。
    默认的排序顺序是按字母升序排列。如果使用了可选参数 sorting_order(设为 1),则排序顺序是按字母降序排列。
    eg:

    $dir    = '/tmp';
    $files1 = scandir($dir);
    $files2 = scandir($dir, 1);

    print_r($files1);
    print_r($files2);   

     文件操作

        1文件是否可读:

           boolis_readable ( string filename )

             如果由 filename 指定的文件或目录存在并且可读则返回 TRUE

            记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。

        2 文件是否可写

             bool is_writable ( string filename )

            如果文件存在并且可写则返回 TRUEfilename 参数可以是一个允许进行是否可写检查的目录名。

             记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制

       3  检查文件是否存在

        boolfile_exists ( string filename )

          如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE

  • 相关阅读:
    图片下落效果
    处理springmvc的post和get提交参数乱码问题
    nginx 安装
    xml学习总结(二)
    xml学习总结(一)
    psp系统需求分析
    MySQL Workbench “Error Code: 1175”
    mysql 连接两列
    php UNIX时间戳转换为指定日期格式
    drupal错误: Maximum execution time of 240 seconds exceeded
  • 原文地址:https://www.cnblogs.com/qiujun/p/6443675.html
Copyright © 2020-2023  润新知