文件的打开与关闭
fopen():
打开文件或url,必须指定模式
参数1:文件名或url 参数2:打开方式
打开方式有:
r:
只读
,
指针指向文件头
r+:
读写
,
指针指向文件头 如果不存在会报
warning,
从指针开始写几个长度就替换几个
w:
只写
,
指针指向文件头
w+:
读写
,
指针指向文件头 如果不存在尝试创建
,
会把原文件整体替换
a:
只写
,
指针指向文件尾
a+:
读写
,
指针指向文件尾 如果不存在尝试创建
,
在末尾接着写入
fread():
读取打开的文件,即资源,必须指定长度
fwrite():
写入资源 参数1:资源 参数2:写入内容的字符串 参数3:长度 返回写入的字符串的字节或false
fclose():
关闭资源
读取文件的几种方式:
fread():
读取文件,需要限定读的长度 不好控制
file_get_contents():
读取文件,返回文件内容的大字符串
fgets():
从打开的文件中读取一行
fgetc():
从打开的文件中读取一个字符
file():
把文件读入数组
(
索引数组
,
下标从
0
开始
)
中
,
每一行是一个数组元素(无需使用fopen打开)
readfile():
读取一个文件,并输出到输出缓冲(无需使用fopen打开)
移动文件指针
ftell():
返回文件指针所在位置
fseek():
在文件指针中定位
参数
1:
资源 参数
2:
移动长度 参数
3:
开始计算的位置 返回值
:
成功返回
0,
否则返回
-1
参数
3:
SEEK_SET -
设定位置等于
offset
字节
,
即从
0
开始加上
offset
。
SEEK_CUR -
设定位置为当前位置加上
offset
。
SEEK_END -
设定位置为文件尾加上
offset
。(要移动到文件尾之前的位置,需要给
offset
传递一个负值。)
rewind():
将文件指针倒回开头位置
文件的一些基本操作函数
copy():
拷贝文件
unlink():
删除文件
ftruncate():
将文件截取到指定大小 成功返回
true,
失败返回
false
文件的锁定机制
flock():
文件锁定 参数
1:
资源 参数
2:
锁定机制
锁定机制有三种:
LOCK_EX:
取得独占锁定
(
写入程序
)
LOCK_SH:
取得共享锁定
(
读取程序
)
LOCK_UN:
解除锁定
(
无论是共享或独占
)
LOCK_NB:
在flock()锁定时不阻塞
两个php文件操作同一个txt文件,并且a.php先执行,b.php后执行时,有以下几种情况:
1.
a.php
锁定机制为独占锁 打开方式为只写或读写方式
b.php
锁定机制为独占锁 打开方式为只写或读写方式
阻塞
a
执行完才执行
b
2.
a.php
锁定机制为独占锁 打开方式为只写或读写方式
b.php
锁定机制为共享锁 打开方式为只读方式
阻塞
a取得独占锁,b只能等待,等a执行完解除锁定后才能执行b
3.
a.php
锁定机制为共享锁 打开方式为只读方式
b.php
锁定机制为共享锁 打开方式为只读方式
不阻塞
a b
各自执行不影响,b不需要等待a执行完就能输出文件内容