一、将数据写入一个文件
(1)打开这个文件 如果不存在 则创建 使用fopen()函数
$fp = fopen( $path ,'w');
第一个参数:路径 注意相对路径和绝对路径的区别
$path=$_SERVER['DOCUMENT_ROOT']该内置变量代表Web服务器的根目录
第二个参数:文件模式
r:只读 读模式-打开文件,从头开始读
r+:只读 读写模式-打开文件,从头开始读写
w w+:只写 写模式-打开文件,从头开始读。如果该文件已经存在,则删除所有文件已有内容。如果该文件不存在,则创建这个文件
a:追加 追加模式-打开文件,如果该文件已有内容,将从文件末尾开始写,如果该文件不存在,则创建这个文件
a+:追加 追加模式-打开文件,如果该文件已有内容,将从文件末尾开始读写,如果该文件不存在,则创建这个文件
b:二进制 二进制模式 默认的模式 建议使用
第三个参数和第四个参数没看懂 先不提
(2)写文件
fwrite($fp,$outputstring)
第一个参数:fopen获取到的文件对象
第二个参数:要写入的字符串
第三个参数:可选 写入的最大字符数
(3)关闭文件
fclose($fp)
如果成功关闭 则返回true
二、读文件
(1)打开文件:fopen()
(2)知道何时读完文件:feof()
while(!feof($fp))
(3)每次读取一行数据:fgets(),fgetss(),fgetcsv()
①$str=fgets($fp,len) 不断读入数据直到读到\n 或文件结束符EOF 或 (len-1)B
②string fgetss(resource fp,int length,string [allowable_tags]);
可以过滤字符串中包含的PHP和HTML标记 也可以将任何特殊的标记放在allowable_tags中
③array fgetcsv(resource fp,int length[,string delimiter[,string enclosure]])
将文件通过某个符号分成多行 返回一个数组
(4)读取整个文件:readfile(),fpassthru(),file()
①readfile($path);打开文件 将所有内容输出到浏览器 再关闭文件
②fpassthru($fp);
③$filearray=file($path);
④file_get_contents($path);返回字符串
(5)fgetc():读取一个字符
while(!feof($fp))
$c=fgetsc($fp);
(6)fread():读取任意长度
string fread(resource fp,int length)
(7)其他文件函数:
(3)关闭文件file_exists($path) 查看文件是否存在
filesize($path) 确定文件大小
unlink($path) 删除一个文件
rewind($fp) 将文件指针复位到文件的开始处
ftell($fp) 以字节为单位报告文件指针当前位置
int fseek(resource fo,int offset [,int whence]) 将文件指针fp从whence位置移动offset个字节 whence:默认SEEK_SET 文件开始处 其他 SEEK_CUR 当前位置 SEEK_END 文件末尾
fclose($fp)