【PHP基础】文件操作

1、文件的打开、读取和关闭

1.1、fopen() 打开或者创建文件

fopen() 的第一个参数指被打开的文件名,第二个参数规定打开文件的模式。如果打开失败,die函数会生成错误消息。

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>

文件会以如下模式之一打开:

模式描述
r打开文件为只读。文件指针在文件的开头开始。
w打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。文件指针在文件的开头开始。
a打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件,如果文件不存在。
x创建新文件为只写。返回 FALSE 和错误,如果文件已存在。
r+打开文件为读/写、文件指针在文件开头开始。
w+打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。
a+打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。
x+创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。

 1.2、fread() 读取打开的文件

fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

如下 PHP 代码把 "webdictionary.txt" 文件读至结尾:

fread($myfile,filesize("webdictionary.txt"));

1.3、fclose()关闭打开的文件

注释:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。

fclose() 需要待关闭文件的名称(或者存有文件名的变量):

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?> 

1.4、fwrite() 函数用于写入文件。

fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

请注意,我们向文件 "newfile.txt" 写了两次。在每次我们向文件写入时,在我们发送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在写入完成后,我们使用 fclose() 函数来关闭文件。

如果我们打开 "newfile.txt" 文件,它应该是这样的:

Bill Gates
Steve Jobs

注意:如果"newfile.txt"本身包含了一些数据,此时进行写入操作,之前已存在的数据会被擦除并重新开始写入。

 

2、其他文件操作相关函数

2.1、fgets() 函数用于从文件读取单行

下例输出 "webdictionary.txt" 文件的首行:

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>

注释:调用 fgets() 函数之后,文件指针会移动到下一行。

2.2、feof() 函数检查是否已到达 "end-of-file" (EOF)

feof() 对于遍历未知长度的数据很有用。

下例逐行读取 "webdictionary.txt" 文件,直到 end-of-file:

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单行直到 end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

2.3、fgetc() 函数用于从文件中读取单个字符

下例逐字符读取 "webdictionary.txt" 文件,直到 end-of-file:

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单字符直到 end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

注释:在调用 fgetc() 函数之后,文件指针会移动到下一个字符。

如需完整的 PHP 文件系统参考手册,请访问  PHP Filesystem 参考手册

2.4、完整的文件系统操作函数(包括目录操作)

函数描述PHP
basename()返回路径中的文件名部分。3
chgrp()改变文件组。3
chmod()改变文件模式。3
chown()改变文件所有者。3
clearstatcache()清除文件状态缓存。3
copy()复制文件。3
delete()参见 unlink() 或 unset()。 
dirname()返回路径中的目录名称部分。3
disk_free_space()返回目录的可用空间。4
disk_total_space()返回一个目录的磁盘总容量。4
diskfreespace()disk_free_space() 的别名。3
fclose()关闭打开的文件。3
feof()测试文件指针是否到了文件结束的位置。3
fflush()向打开的文件输出缓冲内容。4
fgetc()从打开的文件中返回字符。3
fgetcsv()从打开的文件中解析一行,校验 CSV 字段。3
fgets()从打开的文件中返回一行。3
fgetss()从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。3
file()把文件读入一个数组中。3
file_exists()检查文件或目录是否存在。3
file_get_contents()将文件读入字符串(包括远程文件)。4
file_put_contents()将字符串写入文件。5
fileatime()返回文件的上次访问时间。3
filectime()返回文件的上次改变时间。3
filegroup()返回文件的组 ID。3
fileinode()返回文件的 inode 编号。3
filemtime()返回文件的上次修改时间。3
fileowner()文件的 user ID (所有者)。3
fileperms()返回文件的权限。3
filesize()返回文件大小。3
filetype()返回文件类型。3
flock()锁定或释放文件。3
fnmatch()根据指定的模式来匹配文件名或字符串。4
fopen()打开一个文件或 URL。3
fpassthru()从打开的文件中读数据,直到 EOF,并向输出缓冲写结果。3
fputcsv()将行格式化为 CSV 并写入一个打开的文件中。5
fputs()fwrite() 的别名。3
fread()读取打开的文件。3
fscanf()根据指定的格式对输入进行解析。4
fseek()在打开的文件中定位。3
fstat()返回关于一个打开的文件的信息。4
ftell()返回文件指针的读/写位置3
ftruncate()将文件截断到指定的长度。4
fwrite()写入文件。3
glob()返回一个包含匹配指定模式的文件名/目录的数组。4
is_dir()判断指定的文件名是否是一个目录。3
is_executable()判断文件是否可执行。3
is_file()判断指定文件是否为常规的文件。3
is_link()判断指定的文件是否是连接。3
is_readable()判断文件是否可读。3
is_uploaded_file()判断文件是否是通过 HTTP POST 上传的。3
is_writable()判断文件是否可写。4
is_writeable()is_writable() 的别名。3
link()创建一个硬连接。3
linkinfo()返回有关一个硬连接的信息。3
lstat()返回关于文件或符号连接的信息。3
mkdir()创建目录。3
move_uploaded_file()将上传的文件移动到新位置。4
parse_ini_file()解析一个配置文件。4
pathinfo()返回关于文件路径的信息。4
pclose()关闭有 popen() 打开的进程。3
popen()打开一个进程。3
readfile()读取一个文件,并输出到输出缓冲。3
readlink()返回符号连接的目标。3
realpath()返回绝对路径名。4
rename()重名名文件或目录。3
rewind()倒回文件指针的位置。3
rmdir()删除空的目录。3
set_file_buffer()设置已打开文件的缓冲大小。3
stat()返回关于文件的信息。3
symlink()创建符号连接。3
tempnam()创建唯一的临时文件。3
tmpfile()建立临时文件。3
touch()设置文件的访问和修改时间。3
umask()改变文件的文件权限。3
unlink()删除文件。3

 

--------------------------------------------------------------------
承接网站开发、小程序开发、app开发、商城开发、公众号开发。
百度SEO排名、百度搜索霸屏、软文代写等业务。
联系QQ:2779459018     联系微信:qianxia39

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值