推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

文件的操作对文件内容的增删改查是什么?

   2023-06-10 网络整理佚名2150
核心提示:不只是针对具体文件,还包含目录操作。文件目录的操作,先得到一个目录资源该目录必须是空的,而且要有相应的权限。:取得当前工作目录,不一定当前文件所在目录,也不一定是用户打开文件目录指定的目录(如果当前文件没有修改工作目录,那么工作目录是当前文件所在的目录)当工作目录被修改之后,那么相对路径也就改变了,变成当前指定的工作目录所对应的相对目录:从指定的文件里获取所有内容(一次性读入)

文件操作

文件内容的增删改查都是对文件的操作。

不仅针对特定文件,还针对目录操作。

1)为什么要操作文件?

1.管理服务器文件,删除无效或不再使用的文件

2.配置文件(XML配置文件),文件的修改

3.数据内容小,不经常修改的内容会存放在文件中,必要时从文件中读取数据,并搜索文件

4、文件上传是文件管理的新方式。 当文件上传量较大时,需要对文件进行分级管理。 系统需要帮助创建文件夹和添加新文件。

2)文件操作会应用在什么地方?

保存不经常变化的数据量小的数据:小型数据库的使用

配置文件:配置文件的更改

流量统计:统计网站用户访问量、访问时间和IP地址

静态网页生成:大型网站优化

文件下载:读取文件内容返回给用户

目录操作

文件目录的操作,首先获取一个目录资源

($dir): 打开一个目录

1.获取目录

2.判断是否为目录

3.打开目录

4.开启成功返回一个资源,开启失败返回false,但会报错

($res): 读取目录资源中的文件,一次一个,指针操作

($res): 重置目录资源指针

($res): 关闭目录资源

目录资源处理流程

当指针指向最后一个时会发生什么?

如果无法读取文件名,则返回false

(目录名):遍历指定目录,获取其中所有(一级)文件和文件夹,以数组的形式返回。

档案判断

: 检查文件或目录是否存在

: 判断当前给定地址是否为目录

: 判断当前给定地址是否为文件

mkdir:创建文件夹(目录)

注意:通常在创建文件夹之前,需要判断文件夹是否存在;

rmdir:删除一个文件夹(目录),尝试删除指定的目录。 该目录必须为空并具有适当的权限。 成功时返回 TRUE,失败时返回 FALSE。

:获取当前工作目录,不一定是当前文件所在目录,也不一定是用户指定打开文件目录的目录(如果当前文件没有修改工作目录,那么工作目录就是所在目录当前文件所在)

chdir:改变当前工作目录

修改工作目录时,相对路径也随之改变,变成当前指定工作目录对应的相对目录

自定义目录遍历功能

它可以循环遍历文件目录中的所有文件。 如果遇到文件夹,则进入文件夹读取文件夹中的子文件,输出,文件夹用红色表示,文件用蓝色表示; 能够看到亲子关系

递归

最简单的理解:函数在自身内部调用自身

递归调用原理

代码

需求:做一个函数调用计数器,如果函数没有被调用一次,计数器+1;

原则

代码

上述方法可以实现计数器功能,但是当多个函数需要计数器时,可能会发生冲突。 而且需要在外部定义全局变量,比较麻烦。

有没有办法在函数中定义变量来记住函数被调用的次数?

PHP提供了一种机制:静态变量

1.函数第一次执行时,系统会在静态变量区分配一块内存,用来保存静态变量,并对静态变量进行初始化

2. 稍后再次执行该函数时,系统会去静态变量区查找当前函数需要定义的静态变量。 如果发现存在,则不再初始化,而是直接调用

语法:$变量名=值;

函数中静态变量的存在原理

自定义遍历目录

递归:因为子文件夹和父文件夹的遍历是一样的

代码见.php

():根据指定的数据重复拼接字符串,然后返回

('a',3) =====è'aaa'

注意:遍历文件夹时,系统会先对文件夹中的所有文件进行排序,排序方式为字符从小到大排序

A.php, b.php, 10.php, 2.php, 11.php

排序后

10.php, 11.php, 2.php, a.php, b.php

上面的代码已经实现了输出,但是需求变了,要求实现要得到一个像那样的数组,不输出,返回数组。

文件操作

对文件的操作通常是指文件的增删改查。

具体到操作是:读写

PHP 有版本差异

新版本5之后,文件操作变得非常简单

:获取指定文件的所有内容(一次性读取)

注意:如果给定的路径有误,系统会提示找不到文件并报错

: 将内容写入文件,如果文件不存在,则创建文件

:,在原文件内容末尾添加内容

H:覆盖原有内容,从头开始写

文件:读取一个文件的所有内容,一次一行,每次读取一行,将这一行放入数组的一个元素中,返回一个数组

PHP5之前的文件操作

fopen:打开一个文件并返回文件资源

模式

R:,只读,这种方式打开文件,只能读取内容,不能写入,文件指针在文件首位

r+:读写,可以写入文件,直接把文件指针放在最前面

以上两种方法都不能打开不存在的文件

w

w+

A

一个+

fgetc:从文件资源中读取一个字符

fgets:从文件资源中读取一个字符串,指定长度(指定长度就可以读取,如果长度超过一行,只读取该行):读取一行或指定长度

fread:从资源中读取指定长度的数据

上面的3次读取都会把指针指向读取后的下一位

fputs:向文件中插入一个字符串,yes的别名

: 在文件中插入一个字符串

: 关闭文件资源

fseek:设置文件资源的指针,不是重置指针,而是指定指针的位置(需要用户自己设置)

文件指针第一位对应的索引为0

文件相关函数

复制:复制

:删除文件

: 重命名文件

: 文件最后修改的时间

缓存技术

阿贾克斯

:文件大小

: 文件权限,八进制返回

下载文件

在浏览器端以附件形式打开文件

在哪里使用文件下载?

迅雷、bt、电驴、华军、太平洋

对于服务器来说,文件下载与普通文件的打开和输出是一样的。

如何实现下载?

服务器告诉浏览器该文件是附件,不要直接打开或解析,应作为附件保存处理

有两种下载方式

html使用一个标签来实现

文件名

缺点

1)有限的文件类型

2)不安全:完全暴露文件在服务器上的路径、文件名等。

PHP实现下载

("-type: /octet-"):告诉浏览器服务器接下来发送的文件是二进制流文件,不需要解析

("-: ; ="): 重命名服务器上的文件

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON