服务端(PHP)函数_文件操作
文档概述
轻语言网站**后端(PHP)**开发中的文件操作相关函数、用于处理文件和路径操作,包含文件名获取、路径解析、文件读写、文件上传、目录操作、磁盘信息、文件权限、符号连接等功能,常用于文件处理、数据存储、路径管理等场景。
⚠️ 使用限制说明:
- 本文档内函数仅限在轻语言后端文件
.sph代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。- 不得在编写前端页面
.spl代码中使用,更禁止与 JS 代码混合使用。- 编写前端请使用
前端(JavaScript)函数_*类目下的中文函数;服务端只能使用服务端(PHP)函数_*类目下的中文函数。- 前后端虽存在同名函数(如
取文件大小、取文件是否存在),但底层实现与运行环境完全不同,严禁混用。
💡 PHP 原生英文函数使用说明:
- 轻语言后端支持直接调用 PHP 原生英文函数(如
print_r()、file_get_contents()、glob()、realpath()等)。- 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
- 仅支持使用原生英文函数名,严禁使用 PHP 原生语法格式和英文关键字(如
if(){}、for(){}、function、class、echo等控制结构与语法关键字)。- 控制结构必须使用轻语言中文关键字:
如果...否则...结束 如果、变量循环...结束循环、函数 ... 结束 函数等。- 注:
->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。
PHP 文件相关特性:
- 文件路径:基于服务器文件系统,路径用
/分隔(Linux)或\(Windows);前端 JS 路径基于 URL - 打开类型:
打开文件的第二个参数支持r/r+/w/w+/a/a+/x/x+,对应 PHPfopen()模式 - 文件句柄:
打开文件返回文件句柄,后续读数据/写数据/取一行/关闭文件均基于句柄操作 - CSV 操作:
取CSV一行/写数据到CSV专用 CSV 文件读写 - 权限:
创建目录默认权限 0777;取文件权限返回权限数字 - 文件类型:
取文件类型返回 7 种类型(fifo、char、dir、block、link、file、unknown) - 上传文件:
移动上传文件配合取上传文件临时路径保存前端上传的文件 - 符号连接:
创建符号连接/创建硬连接/取符号连接目标,硬连接不支持 Windows
函数:取文件名(文件路径)
根据指定文件路径返回路径中的文件名部分(含扩展名后缀)。
' 获取文件名
变量 文件路径 = "D:/test/test.txt"
变量 文件名 = 取文件名(文件路径)
输出 "文件名: " + 文件名
函数:取文件扩展名(文件路径)
返回路径中的文件扩展名部分。
' 获取文件扩展名
变量 文件路径 = "D:/test/test.txt"
变量 文件扩展名 = 取文件扩展名(文件路径)
输出 "文件扩展名: " + 文件扩展名
函数:复制文件(待复制文件,目标文件)
复制指定文件到目标文件;成功返回真;失败返回假。
' 复制文件
变量 待复制文件 = "D:/test/test.txt"
变量 目标文件 = "D:/test/test_copy.txt"
变量 是否成功 = 复制文件(待复制文件, 目标文件)
如果(是否成功)
输出 "复制文件成功"
否则
输出 "复制文件失败"
结束 如果
函数:移动上传文件(待移动文件地址,目标文件路径)
移动上传的文件到指定新路径,移动成功返回真、失败返回假。
' 移动上传文件
变量 待移动文件 = "D:/test/upload/test.txt"
变量 目标文件 = "D:/test/test.txt"
变量 是否成功 = 移动上传文件(待移动文件, 目标文件)
如果(是否成功)
输出 "移动文件成功"
否则
输出 "移动文件失败"
结束 如果
函数:取文件目录(文件路径)
返回路径中的目录名称部分。
' 获取文件所在目录
变量 文件路径 = "D:/test/test.txt"
变量 文件所在目录 = 取文件目录(文件路径)
输出 "文件所在目录: " + 文件所在目录
函数:取文件大小(文件路径)
返回指定文件的大小,单位为字节。
' 获取文件大小
变量 文件路径 = "D:/test/test.txt"
变量 文件大小 = 取文件大小(文件路径)
输出 "文件大小: " + 文件大小 + "字节"
函数:取文件最后修改时间(文件路径)
返回指定文件的最后修改时间。
' 获取文件最后修改时间
变量 文件路径 = "D:/test/test.txt"
变量 文件最后修改时间 = 取文件最后修改时间(文件路径)
输出 "文件最后修改时间: " + 文件最后修改时间
函数:取文件访问时间(文件路径)
返回指定文件的最后访问时间。
' 获取文件最后访问时间
变量 文件路径 = "D:/test/test.txt"
变量 文件最后访问时间 = 取文件访问时间(文件路径)
输出 "文件最后访问时间: " + 文件最后访问时间
函数:取文件创建时间(文件路径)
返回指定文件的创建时间。
' 获取文件创建时间
变量 文件路径 = "D:/test/test.txt"
变量 文件创建时间 = 取文件创建时间(文件路径)
输出 "文件创建时间: " + 文件创建时间
函数:读文件内容(文件路径)
获取指定地址的内容,参数除了支持普通路径外,还支持网络文件直链地址。
' 获取文件内容
变量 文件路径 = "D:/test/test.txt"
变量 文件内容 = 读文件内容(文件路径)
输出 "文件内容: " + 文件内容
函数:写文本到文件(文件路径,待写出内容)
将字符串写入文件。返回写入到文件内数据的字节数。如果文件不存在将会自动创建。
' 写文本到文件
变量 文件路径 = "D:/test/test.txt"
变量 待写出内容 = "Hello World!"
变量 写入的字节数 = 写文本到文件(文件路径, 待写出内容)
输出 "写入的字节数: " + 写入的字节数
函数:取目录剩余尺寸(目录路径)
返回目录中的可用空间的尺寸;单位为字节。
' 获取目录剩余空间
变量 目录路径 = "D:/test"
变量 目录剩余空间 = 取目录剩余尺寸(目录路径)
输出 "目录剩余空间: " + 目录剩余空间 + "字节"
函数:取磁盘总容量(目录路径)
返回存放指定目录的磁盘总容量。单位为字节。
' 获取磁盘总容量
变量 目录路径 = "D:/test"
变量 磁盘总容量 = 取磁盘总容量(目录路径)
输出 "磁盘总容量: " + 磁盘总容量 + "字节"
函数:取目录列表(目录路径)
返回目录中的文件列表。
' 获取目录列表
变量 目录路径 = "D:/test"
变量 目录列表 = 取目录列表(目录路径)
输出 "目录列表: " + 目录列表
函数:打开文件(文件路径,打开类型)
打开一个文件或 URL。参数二的取值为:"r"只读方式打开,将文件指针指向文件头。"r+"读写方式打开,将文件指针指向文件头。"w"写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。"w+"读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。"a"写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。"a+"读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。"x"创建并以写入方式打开,将文件指针指向文件头。"x+"创建并以读写方式打开,将文件指针指向文件头。
' 打开文件
变量 文件路径 = "D:/test/test.txt"
变量 打开类型 = "r"
变量 文件句柄 = 打开文件(文件路径, 打开类型)
输出 "文件句柄: " + 文件句柄
函数:关闭文件(文件句柄)
关闭打开的文件。关闭成功返回真;否则返回假。
' 关闭文件
变量 文件句柄 = 打开文件("D:/test/test.txt", "r")
变量 关闭成功 = 关闭文件(文件句柄)
输出 "关闭成功: " + 关闭成功
函数:取文件字符(文件句柄)
从打开的文件中获取一个字符。
' 获取文件字符
变量 文件句柄 = 打开文件("D:/test/test.txt", "r")
变量 文件字符 = 取文件字符(文件句柄)
输出 "文件字符: " + 文件字符
函数:取一行(文件句柄,长度)
从打开的文件中获取一行内容。参数二指定行最大长度;默认为1k可以省略。
' 获取一行
变量 文件句柄 = 打开文件("D:/test/test.txt", "r")
变量 一行内容 = 取一行(文件句柄)
输出 "一行内容: " + 一行内容
函数:取CSV一行(文件句柄)
从打开的csv文件中获取一行。
' 获取CSV一行
变量 文件句柄 = 打开文件("D:/test/test.csv", "r")
变量 一行内容 = 取CSV一行(文件句柄)
输出 "一行内容: " + 一行内容
函数:取文件是否存在(文件路径)
检查文件或目录是否存在。
' 检查文件是否存在
变量 文件路径 = "D:/test/test.txt"
变量 文件是否存在 = 取文件是否存在(文件路径)
输出 "文件是否存在: " + 文件是否存在
函数:取文件类型(文件路径)
返回文件类型;返回值一共有7种类型:fifo、char、dir、block、link、file、unknown
' 取文件类型
变量 文件路径 = "D:/test/test.txt"
变量 文件类型 = 取文件类型(文件路径)
输出 "文件类型: " + 文件类型
函数:清除文件状态缓存()
当我们操作执行文件相关的操作时;系统为了提供更高的性能所以会缓存很多的文件操作。在结束文件操作的时候可以使用该函数来清除文件状态缓存。
函数:取一行_过滤标记(文件句柄,长度,保留标记)
从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。参数二指定行的最大长度;默认为1k可以省略;参数三指定不需要过滤的标记。可以省略。
函数:读文件到数组(文件路径)
把文件读入一个数组中。数组中每个元素表示一行内容。如果读取失败返回假。
函数:取文件指针结束位置(文件句柄)
获取文件指针是否到了文件结束的位置。如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE。
函数:取文件组ID(文件路径)
返回文件的组 ID。如果失败返回假
函数:取文件INODE(文件路径)
返回文件的 inode 编号;如果失败返回假。
函数:取文件所属用户(文件路径)
获取文件的 user ID (所有者);如果失败返回假。
函数:取文件权限(文件路径)
返回文件的权限;如果失败返回假。
函数:锁定文件(文件句柄,锁定类型,阻挡其它进程)
锁定文件。参数二取值为:1取得共享锁定(读取的程序)、2取得独占锁定(写入的程序)、3释放锁定(无论共享或独占)、4如果不希望 flock() 在锁定时堵塞
函数:匹配文件(文本模板,字符串)
根据指定的模式来匹配文件名或字符串。
函数:读数据(文件句柄)
从打开的文件中读数据,输出文件指针处的所有剩余数据。
函数:写数据到CSV(文件路径,数据数组)
将行格式化为 CSV 并写入一个打开的文件中。参数二必须为一个逗号分隔的数组
函数:读取已打开文件(文件句柄,长度)
读取已打开的文件;参数二为读取的长度;为必须参数。成功返回读取的数据;失败返回假。
函数:取文件信息(文件句柄)
返回关于一个已经打开的文件的信息。
函数:取文件指针位置(文件句柄)
返回文件指针的读/写位置
函数:裁剪文件(文件句柄,新尺寸)
将文件截断到指定的长度(尺寸)。成功返回真;失败返回假。
函数:写数据到文件(文件句柄,文本内容,长度)
写入数据到已经打开的文件中。写入成功返回写入的字符数;失败返回假。参数三:要写入的最大字节数;可以省略。
函数:取匹配文件(匹配格式)
返回一个包含匹配指定模式的文件名目录的数组。如果失败则返回假。
函数:为目录(文件路径)
获取指定指定的文件名是否是一个目录。如果是返回真;否则返回假。
函数:可被执行(文件路径)
判断文件是否可执行。如果是一个可执行文件则返回真;否则返回假。
函数:为常规文件(文件路径)
判断指定文件是否为常规的文件;如果是则返回真;否则返回假。
函数:为连接(文件路径)
判断指定的文件是否是连接。如果是则返回真;否则返回假。
函数:文件可被读(文件路径)
判断文件是否可读。如果是则返回真;否则返回假。
函数:为POST上传(文件路径)
判断文件是否是通过 HTTP POST 上传的;如果是则返回真;否则返回假。
函数:文件可写(文件路径)
判断文件是否可写;如果是则返回真;否则返回假。
函数:创建硬连接(目标,链接)
创建一个硬连接;注意:该函数不能用于远程文件、并且不能用于在Windows的系统中。成功返回真;否则返回假。
函数:取硬连接信息(路径)
获取一个硬连接的信息;如果失败则返回假;注意:该函数不能用于Windows平台中。
函数:取文件连接信息(文件路径)
返回关于文件或符号连接的信息;如果失败则返回假。
函数:创建目录(路径,权限)
根据指定路径创建一个目录;参数二默认为0777最高权限。
函数:解析配置文件(文件路径)
解析一个配置文件,并以数组的形式返回其中的设置。如果失败返回假。
函数:取文件路径信息(文件路径)
返回关于文件目录和路径的信息。
函数:关闭进程(进程句柄)
关闭由 popen() 打开的进程。成功返回真;失败返回假。
函数:打开进程(命令,模式)
打开一个进程;参数二取值为:"r"只读模式、"w"写入模式。执行成功返回真;否则返回假。
函数:读取文件(文件路径)
读入一个文件并写入到输出缓冲。若成功,则返回从文件中读入的字节数。若失败,则返回 false
函数:取符号连接目标(连接路径)
返回符号连接的目标。
函数:取绝对路径(文件名称)
返回文件的绝对路径名。如果失败则返回假。
函数:重命名文件(旧名称,新名称)
重名名文件或目录;成功返回真;失败返回假。
函数:重置文件指针位置(文件句柄)
重新设置文件指针的位置到文件的开头。成功返回真;失败返回假。
函数:删除空目录(目录路径)
删除空的目录。成功返回真;失败返回假。
函数:删除文件(文件路径)
删除文件。成功返回真;失败返回假。
函数:置打开文件缓存大小(文件句柄,缓存值)
设置已打开文件的缓冲大小。参数二单位为字节。成功返回0;失败返回EOF。
函数:取文件信息数组(文件句柄)
返回已经打开的文件信息数组。
函数:创建符号连接(目标,链接)
创建符号连接。成功返回真;失败返回假。
函数:创建唯一临时文件(目录,文件名开头)
创建唯一的临时文件,成功返回临时文件名;失败返回假。
函数:创建临时文件(目录,文件名开头)
建立临时文件,成功返回文件句柄;失败返回假。
函数:置文件最后修改时间(文件名称,修改时间,访问时间)
设置文件的访问和修改时间。成功返回真;失败返回假。
学习要点
| 知识点 | 代码示例 | 说明 |
|---|---|---|
| 文件名/扩展名 | 取文件名(路径) / 取文件扩展名(路径) | 基于 PHP basename/pathinfo;路径解析常用 |
| 文件读写 | 读文件内容(路径) / 写文本到文件(路径, 内容) | 简单读写;写文件不存在自动创建 |
| 文件句柄操作 | 打开文件 → 取一行/读数据/写数据 → 关闭文件 | 对应 PHP fopen/fgets/fread/fwrite/fclose |
| 打开类型 | "r"/"w"/"a"/"r+"/"w+"/"a+"/"x"/"x+" | 对应 PHP fopen 模式;r只读、w写入截零、a追加、x创建 |
| CSV 文件 | 取CSV一行(句柄) / 写数据到CSV(路径, 数组) | 专用 CSV 读写;对应 PHP fgetcsv/fputcsv |
| 文件信息 | 取文件大小 / 取文件类型 / 取文件权限 / 取文件所属用户 | 对应 PHP filesize/filetype/fileperms/fileowner |
| 时间戳信息 | 取文件创建时间 / 取文件访问时间 / 取文件最后修改时间 | 对应 PHP filectime/fileatime/filemtime |
| 文件判断 | 取文件是否存在 / 为目录 / 为常规文件 / 文件可被读 / 文件可写 | 对应 PHP file_exists/is_dir/is_file/is_readable/is_writable |
| 目录操作 | 取目录列表 / 创建目录 / 删除空目录 | 对应 PHP scandir/mkdir/rmdir |
| 磁盘空间 | 取目录剩余尺寸 / 取磁盘总容量 | 对应 PHP disk_free_space/disk_total_space |
| 上传文件 | 移动上传文件(临时路径, 目标路径) | 对应 PHP move_uploaded_file;配合 取上传文件临时路径 使用 |
| 文件复制/重命名/删除 | 复制文件 / 重命名文件 / 删除文件 | 对应 PHP copy/rename/unlink |
| 符号连接 | 创建符号连接 / 创建硬连接 / 取符号连接目标 | 对应 PHP symlink/link/readlink;硬连接不支持 Windows |
| 文件锁定 | 锁定文件(句柄, 类型) | 对应 PHP flock;1共享锁、2独占锁、3释放、4非堵塞 |
| 进程操作 | 打开进程(命令, 模式) / 关闭进程(句柄) | 对应 PHP popen/pclose;执行系统命令 |
| 临时文件 | 创建临时文件 / 创建唯一临时文件 | 对应 PHP tmpfile/tempnam |
| 配置文件 | 解析配置文件(路径) | 对应 PHP parse_ini_file;返回配置数组 |
相关文档
- 文档
服务端(PHP)函数_字符串操作—— 后端字符串处理函数 - 文档
服务端(PHP)函数_数组操作—— 后端数组操作函数 - 文档
服务端(PHP)函数_核心库函数——取上传文件、取上传文件临时路径等文件上传相关 - 文档
服务端(PHP)函数_MYSQL操作—— 数据库二进制字段读写 - 文档
服务端(PHP)函数_时间操作—— 文件时间戳相关函数 - 文档
轻语言网站:变量与数组与对象的定义—— 变量、对象、数组的基本语法