目录
1 目录操作
1.1 打开和关闭目录
resource opendir ( string $path [, resource $context ] )
1 path
要打开的目录路径2 context
context 参数的说明见手册中的 Streams API 一章。
string readdir ([ resource $dir_handle ] )
返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
void closedir ([ resource $dir_handle ] )
dir_handle
目录句柄的 resource,之前由 opendir() 所打开的。如果目录句柄没有指定,那么会假定为是opendir()所打开的最后一个句柄。
1.2 创建和删除目录
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context]]] )
1 pathname
目录的路径。2 mode
默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。Note:
mode 在 Windows 下被忽略。
注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask() 来改变。
3 recursive
Allows the creation of nested directories specified in the pathname.4 context
Note: 在 PHP 5.0.0 中增加了对上下文(Context)的支持。有关上下文(Context)的说明参见 Streams。
bool rmdir ( string $dirname [, resource $context ] )
1 dirname
目录的路径。2 context
Note: 在 PHP 5.0.0 中增加了对上下文(Context)的支持。有关上下文(Context)的说明参见 Streams。
1.3 判断文件类型
string filetype ( string $filename )
filename
文件的路径。
2 文件操作
2.1 打开文件
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource$context ]] )
filename
如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。
如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
mode | 说明 |
---|---|
'r' | 只读方式打开,将文件指针指向文件头。 |
'r+' | 读写方式打开,将文件指针指向文件头。 |
'w' | 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'w+' | 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'a' | 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
'a+' | 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
'x' | 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE ,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。 |
'x+' | 创建并以读写方式打开,其他的行为和 'x' 一样。 |
2.2 读取文件
string fgets ( resource $handle [, int $length ] )
从文件指针中读取一行。
1 handle
文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。2 length
从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认
为 1K,或者说 1024 字节。
string fgetc ( resource $handle )
从文件句柄中获取一个字符。
handle
文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。
2.3 写文件
fwrite ( resource $handle
, string $string
[, int $length
] ) : int
handle
文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
string
The string that is to be written.
length
如果指定了
length
,当写入了length
个字节或者写完了string
以后,写入就会停止,视乎先碰到哪种情况。注意如果给出了
length
参数,则 magic_quotes_runtime 配置选项将被忽略,而string
中的斜线将不会被抽去。
2.4 文件的简易操作
bool copy ( string $source , string $dest [, resource $context ] )
1 source
源文件路径。2 dest
目标路径。如果 dest 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。3 Warning
如果目标文件已存在,将会被覆盖。4 context
A valid context resource created with stream_context_create().
bool rename ( string $oldname , string $newname [, resource $context ] )
1 oldname
用于 oldname 中的封装协议必须和用于 newname 中的相匹配。
2 newname
新的名字。3 context
Note: 在 PHP 5.0.0 中增加了对上下文(Context)的支持。有关上下文(Context)的说明参见 Streams。
bool unlink ( string $filename [, resource $context ] )
1 filename
文件的路径。2 context
Note: 在 PHP 5.0.0 中增加了对上下文(Context)的支持。有关上下文(Context)的说明参见 Streams。
注:常见的目录及文件操作
目录操作:
- 打开目录 opendir()
- 读取目录 readdir()
- 列出指定路径中的文件和目录 scandir()
- 创建目录 mkdir()
- 删除目录 rmdir()
- 关闭目录句柄 closedir()
- 返回路径中的目录部分 dirname()
- 取得当前工作目录 getcwd()
- 判断是否是目录 is_dir()
文件操作:
- 打开文件 fopen()
- 读取文件 fgets() ; 注:file_get_contents()也是读取文件
- 写入文件fwrite() ; 注:file_put_contents()同样可以写入文件
- 关闭文件句柄 fclose()
- 移动 / 重命名文件 rename()
- 复制文件 copy()
- 创建文件 vim 或 touch
- 删除文件 unlink()
- 获取文件上次访问的时间 fileatime()
- 获取文件上次修改的时间 filemtime()
- 获取文件大小 filesize()
- 获取文件类型 filetype()
- 获取文件详细信息 stat()
- 判断是否是文件 is_file()