笔记

image.pngimage.pngimage.pngimage.pngimage.pngimage.png

补充1(文件的属性)

923c543b5fdeb06ca6c49714acf44f89.jpg

补充2(文件常用函数)923c543b5fdeb06ca6c49714acf44f89.jpg

补充3(文件其他函数,目录解析)1.15目录及文件的基本操作 - 图131.15目录及文件的基本操作 - 图14

案例

文件的系统概述

文件类型

image.png

文件的属性

image.pngimage.pngimage.pngimage.pngimage.png

目录的基本操作

文件路径

image.png

遍历目录

image.png
image.pngimage.pngimage.png

统计目录大小

image.png

建立与删除目录

image.png

复制与移动目录

image.png

文件的打开与关闭

image.png

写入文件

image.png

读取文件内容

image.png

文件的一些基本操作函数

image.png

补充1(文件的属性)

filetype() 函数

filetype(file) 函数返回指定文件或目录的类型。
如果成功,该函数返回 7 种可能的值之一。如果失败,则返回 FALSE。
可能的返回值:

  • fifo
  • char
  • dir
  • block
  • link
  • file
  • unknown

image.png

filesize() 函数

filesize() 函数返回指定文件的大小。
如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。
image.png

filectime() 函数

filectime() 函数返回指定文件的上次修改时间。
该函数将检查文件的日常修改情况和 inode 修改情况。inode 修改情况是指:权限的修改、所有者的修改、用户组的修改或其他元数据的修改。
如果成功,该函数将以 Unix 时间戳形式返回文件的上次修改时间。如果失败,则返回 FALSE。
提示:请使用 filemtime() 函数来返回文件内容最后被修改的时间。
image.png

fileatime() 函数

fileatime() 函数返回指定文件的上次访问时间。
如果成功,该函数将以 Unix 时间戳形式返回文件的上次访问时间。如果失败,则返回 FALSE。
image.png

filemtime() 函数

filemtime() 函数返回文件内容的上次修改时间。
如果成功,该函数将以 Unix 时间戳形式返回文件内容的上次修改时间。如果失败,则返回 FALSE。
image.png

is_readable() 函数

is_readable(file) 函数检查指定的文件是否可读。
如果文件可读,该函数返回 TRUE。
image.png

is_writable() 函数

is_writable(file) 函数检查指定的文件是否可写。
如果文件可写,该函数返回 TRUE。
image.png

fileperms() 函数

fileperms() 函数返回文件或目录的权限。
如果成功,该函数以数字形式返回权限。如果失败,则返回 FALSE。
image.png

stat() 函数

stat() 函数返回关于文件的信息。
该函数将返回一个包含下列元素的数组:

  • [0] 或 [dev] - 设备编号
  • [1] 或 [ino] - inode 编号
  • [2] 或 [mode] - inode 保护模式
  • [3] 或 [nlink] - 连接数目
  • [4] 或 [uid] - 所有者的用户 ID
  • [5] 或 [gid] - 所有者的组 ID
  • [6] 或 [rdev] - inode 设备类型
  • [7] 或 [size] - 文件大小的字节数
  • [8] 或 [atime] - 上次访问时间(Unix 时间戳)
  • [9] 或 [mtime] - 上次修改时间(Unix 时间戳)
  • [10] 或 [ctime] - 上次 inode 改变时间(Unix 时间戳)
  • [11] 或 [blksize] - 文件系统 IO 的块大小(如果支持)
  • [12] 或 [blocks] - 所占据块的数目

image.png

作业

10f00012ab4227b1ab02ad6973e799e3.png

补充2(文件常用函数)

fopen() 函数

fopen() 函数打开一个文件或 URL。
如果 fopen() 失败,它将返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 ‘@’ 来隐藏错误输出。
语法:fopen(filename,mode,include_path,context)

参数 描述
filename 必需。规定要打开的文件或 URL。
mode 必需。规定您请求到该文件/流的访问类型。
可能的值:
- “r” (只读方式打开,将文件指针指向文件头)
- “r+” (读写方式打开,将文件指针指向文件头)
- “w” (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)
- “w+” (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)
- “a” (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)
- “a+” (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)
- “x” (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误)
- “x+” (创建一个新的文件并以读写方式打开,如果文件已存在则返回 FALSE 和一个错误)
include_path 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。
context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。


fwrite() 函数

fwrite() 函数将内容写入一个打开的文件中。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
如果函数成功执行,则返回写入的字节数。如果失败,则返回 FALSE。
语法:fwrite(file,string,length)

参数 描述
file 必需。规定要写入的打开文件。
string 必需。规定要写入打开文件的字符串。
length 可选。规定要写入的最大字节数。

fclose() 函数

fclose() 函数关闭打开的文件。
该函数如果成功则返回 TRUE,如果失败则返回 FALSE。

serialize() 函数

serialize() 函数用于序列化对象或数组,并返回一个字符串。
serialize() 函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。
如果想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()
PHP 版本要求: PHP 4, PHP 5, PHP 7
语法:string serialize ( mixed $value )
参数说明:$value: 要序列化的对象或数组。
返回值:返回一个字符串。

fgetc() 函数

fgetc() 函数从打开的文件中返回一个单一的字符。

fgets() 函数

fgets() 函数从打开的文件中返回一行。
fgets() 函数会在到达指定长度( length - 1 )、碰到换行符、读到文件末尾(EOF)时(以先到者为准),停止返回一个新行。
如果失败该函数返回 FALSE。
语法:fgets(file,length)

参数 描述
file 必需。规定要读取的文件。
length 可选。规定要读取的字节数。默认是 1024 字节。

fgetss() 函数

fgetss() 函数从打开的文件中返回一行,并过滤掉 HTML 和 PHP 标签。
fgetss() 函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止返回一个新行。
如果失败该函数返回 FALSE。
语法:fgetss(file,length,tags)

参数 描述
file 必需。规定要检查的文件。
length 可选。规定要读取的字节数。默认是 1024 字节。
注意:该参数在 PHP 5 之前的版本是必需的。
tags 可选。指定哪些标记不被去掉。

fgetcsv() 函数

fgetcsv() 函数从打开的文件中解析一行,校验 CSV 字段。
fgetcsv() 函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止返回一个新行。
该函数如果成功则以数组形式返回 CSV 字段,如果失败或者到达文件末尾(EOF)则返回 FALSE。
语法:getcsv(file,length,separator,enclosure)

参数 描述
file 必需。规定要检查的文件。
length 可选。规定行的最大长度。必须大于 CSV 文件内最长的一行。如果忽略该参数(或者设置为 0),那么行长度就没有限制,不过可能会影响执行效率。
注意:该参数在 PHP 5 之前的版本是必需的。
separator 可选。设置字段分界符(只允许一个字符),默认值为逗号( , )。
enclosure 可选。设置字段环绕符(只允许一个字符),默认值为双引号( “ )。

file() 函数

file() 函数把整个文件读入一个数组中。
数组中的每个元素都是文件中相应的一行,包括换行符在内。
语法:file(path,include_path,context)

参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。
context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。


file_get_contents() 函数

file_get_contents() 把整个文件读入一个字符串中。
该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。
语法:file_get_contents(path,include_path,context,start,max_length)

参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。
context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。
start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。

nl2br() 函数

nl2br() 函数在字符串中的每个新行(\n)之前插入 HTML 换行符(


语法:nl2br(string,xhtml)

参数 描述
string 必需。规定要检查的字符串。
xhtml 可选。一个表示是否使用兼容 XHTML 换行的布尔值:
- TRUE- 默认。插入

- FALSE - 插入

作业

2.png3.png4.png5.png

补充3(文件其他函数,目录解析)

作业

6.png7.png

补充4

作业

image.png
image.pngimage.png

章节测验

  1. 列举常用的文件处理函数,分别返回什么数据类型?
    $file = “a.txt”;// 对文件操作
    $fp = fopen($file, ‘a+’); // 资源类型
    $fd = fread($fp, 10); // 字符串
    $fw = fwrite($fp, ‘国家宁’); // 整型(写入的长度)
    2. $_FILES是几维数组?第一维和第二维的索引下标分别是什么?
    二维数组。第一维是上传控件的name,二维下标分别为name/type/tmp_name/size/error.

    实训

    image.png
    <?php
    function myscandir($dir)
    {
    $files=array();
    if (@$handle = opendir($dir)) {
    while (($file = readdir($handle)) != false) {
    if ($file != “.” && $file != “..”) {
    $newdir=$dir.”/“.$file;
    if (is_dir($newdir)) {
    $files[$file] = myscandir($newdir);
    }else{
    $files[] = $file;
    }
    }
    }
    closedir($handle);
    return $files;
    }
    }
    echo “
    1. “;
      print_r(myscandir(“.”));
      ?>
      image.png