1、fopen() 函数
用于在 PHP 中打开文件。
函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件:
$file=fopen("welcome.txt","r");
?>
文件可能通过下列模式来打开:
r只读。在文件的开头开始。
r+读/写。在文件的开头开始。
w只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+读/追加。通过向文件末尾写内容,来保持文件内容。
x只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。
实例
如果 fopen() 函数不能打开指定的文件,下面的实例会生成一段消息:
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>
2、fclose() 函数
用于关闭打开的文件:
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
?>
3、feof() 函数
检测是否已到达文件末尾(EOF)。
在循环遍历未知长度的数据时,feof() 函数很有用。
注释:在 w 、a 和 x 模式下,您无法读取打开的文件!
if (feof($file)) echo "文件结尾";
4、fgets() 函数
用于从文件中逐行读取文件。
注释:在调用该函数之后,文件指针会移动到下一行。
实例
下面的实例逐行读取文件,直到文件末尾为止:
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
echo fgets($file). "
";
}
fclose($file);
?>
5、fgetc() 函数
用于从文件中逐字符地读取文件。
注释:在调用该函数之后,文件指针会移动到下一个字符。
实例
下面的实例逐字符地读取文件,直到文件末尾为止:
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
while (!feof($file))
{
echo fgetc($file);
}
fclose($file);
?>
6、fstat() 函数
返回关于一个打开的文件的信息。
该函数将返回一个包含下列元素的数组:
[0] 或 [dev] - 设备编号
[1] 或 [ino] - inode 编号
[2] 或 [mode] - inode 保护模式
[3] 或 [nlink] - 连接数目
[4] 或 [uid] - 所有者的用户 ID
[5] 或 [gid] - 所有者的组 ID
[6] 或 [rdev] - inode 设备类型
[7] 或 [size] - 文件大小的字节数
[8] 或 [atime] - 上次访问时间(Unix 时间戳)
[9] 或 [mtime] - 上次修改时间(Unix 时间戳)
[10] 或 [ctime] - 上次 inode 改变时间(Unix 时间戳)
[11] 或 [blksize] - 文件系统 IO 的块大小(如果支持)
[12] 或 [blocks] - 所占据块的数目
语法
fstat(file)
参数描述
file必需。规定要检查的打开文件。
注释:从这个函数返回的结果与服务器到服务器的结果是不相同的。这个数组包含了数字索引、名称索引或同时包含上述二者。
实例:
$file = fopen("test.txt","r");
print_r(fstat($file));
fclose($file);
?>上面的代码将输出:
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 92
[8] => 1141633430
[9] => 1141298003
[10] => 1138609592
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 92
[atime] => 1141633430
[mtime] => 1141298003
[ctime] => 1138609592
[blksize] => -1
[blocks] => -1
)