服务端(PHP)函数_文件操作

文档概述

轻语言网站**后端(PHP)**开发中的文件操作相关函数、用于处理文件和路径操作,包含文件名获取、路径解析、文件读写、文件上传、目录操作、磁盘信息、文件权限、符号连接等功能,常用于文件处理、数据存储、路径管理等场景。

⚠️ 使用限制说明

  • 本文档内函数仅限在轻语言后端文件 .sph 代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。
  • 不得在编写前端页面 .spl 代码中使用,更禁止与 JS 代码混合使用
  • 编写前端请使用 前端(JavaScript)函数_* 类目下的中文函数;服务端只能使用 服务端(PHP)函数_* 类目下的中文函数。
  • 前后端虽存在同名函数(如 取文件大小取文件是否存在),但底层实现与运行环境完全不同,严禁混用。

💡 PHP 原生英文函数使用说明

  • 轻语言后端支持直接调用 PHP 原生英文函数(如 print_r()file_get_contents()glob()realpath() 等)。
  • 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
  • 仅支持使用原生英文函数名严禁使用 PHP 原生语法格式和英文关键字(如 if(){}for(){}functionclassecho 等控制结构与语法关键字)。
  • 控制结构必须使用轻语言中文关键字:如果...否则...结束 如果变量循环...结束循环函数 ... 结束 函数 等。
  • 注:->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。

PHP 文件相关特性:

  • 文件路径:基于服务器文件系统,路径用 / 分隔(Linux)或 \(Windows);前端 JS 路径基于 URL
  • 打开类型打开文件 的第二个参数支持 r/r+/w/w+/a/a+/x/x+,对应 PHP fopen() 模式
  • 文件句柄打开文件 返回文件句柄,后续 读数据/写数据/取一行/关闭文件 均基于句柄操作
  • 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)函数_时间操作 —— 文件时间戳相关函数
  • 文档轻语言网站:变量与数组与对象的定义 —— 变量、对象、数组的基本语法