笔记补充。
- 打开文件
语法:fopen(文件名或url,打开模式)
打开模式:
只读 r 以只读方式打开文件,指针指向文件头
读写 r+ 以读写方式打开文件,指针指向文件头
写入 w 以写入方式打开文件,指针指向文件头,若文件存在则清空,若不存在则尝试创建
读写 w+ 以读写方式打开文件,指针指向文件头,若文件存在则清空,若不存在则尝试创建
添加 a 以写入方式打开文件,指针指向文件尾,若不存在则尝试创建
添加 a+ 以读写方式打开文件,指针指向文件尾,若不存在则尝试创建
谨慎写入 x 以写入方式打开文件,指针指向文件头,若文件存在则返回false并警告
谨慎写入 x+ 以写入方式打开文件,指针指向文件头,若文件存在则返回false并警告
创建并写入 c 以写入方式打开文件,指针指向文件头,即使文件存在也不会失败或清空
创建并读写 c+ 以读写方式打开文件,指针指向文件头,即使文件存在也不会失败或清空
- 检查文件末尾
语法:feof(文件指针)
如果文件指针到了EOF(end of file)或出错就返回true,否则返回一个错误(包括socket超时),其他情况返回false
例:
1 | $file = fopen('new.txt','r'); |
- 读取文件
语法:fread(文件指针,读取长度)
返回读取的字符串,若出错则返回false
如果读取长度比指定长度短(遇到EOF)则自动停止,返回读取的字符串
- 关闭文件
语法:fclose(文件指针)
执行成功返回true,否则返回false
将文件读入字符串
语法:file_get_contents(文件名)
成功则返回文件内容,失败则返回false
- 字符串写入文件
语法:file_put_contents(写入文件,要写入数据,打开/写入文件方式)
若写入文件不存在,则创建一个新文件。
打开/写入文件方式(可选参数):FILE_USE_INCLUDE_PATH 在include_path目录搜索要输入的文件名
FILE_APPEND 若文件已存在,则追加而非覆盖
LOCK_EX 在写入时获得一个独占锁
- 将整个文件读入数组
语法:file(文件名,读取参数)
成功则返回数组,元素以换行键分隔,失败则返回false
读取参数:FILE_USE_INCLUDE_PATH 在include_path中查找文件
FILE_IGNOE_NEW_LINES 每个元素末尾不添加换行符
FILE_SKIP_EMPTY_LINES 跳过空行
无需打开/读取/关闭文件就可以读取整个文件,但会大量占用系统内存
- 复制文件
语法:copy(源文件,目标文件)
成功返回true,失败返回false
注意:若文件已存在,则完全覆盖!
- 删除文件
语法:unlink(文件名)
成功返回true,失败返回false
- 检查文件是否正常
语法: is_file(文件名)
存在且正常则返回true,否则返回false
is_file只检查文件,而file_exists既检查文件也检查目录
- 返回文件信息
语法:stat(文件名)
成功则返回包含文件信息的数组,否则返回false
- 打开目录
语法:opendir(目录)
成功返回目录句柄,否则返回false
若目录路径不合法或没有权限,返回false及一条错误信息,若要隐藏则在opendir()前加@
- 关闭目录
语法:closedir(目录句柄)
若句柄未指定,系统默认为opendir打开的最后一个句柄
- 读取目录
语法:readdir(目录句柄)
例:
1 | <?php |
- 创建目录
语法:mkdir(目录名,目录模式,是否创建父目录)
成功返回true,失败返回false
目录模式:在非Windows系统上默认值0777(八进制表示的整数),Windows系统无效。
是否创建父目录:true则可以用来建立,false不建立
- 删除目录
语法:rmdir(目录名称)
成功返回true,失败返回false
注意:目录必须是空的,而且有权限,否则产生E_WARNING级别的错误
- 重命名文件或目录
语法:rename(旧文件名,新文件名)
成功返回true,失败返回false
- 检查文件或目录是否存在
语法:file_exists(检查目录或文件名)
目录或文件存在则返回true,否则返回false