使用fopen()打开文件
$fp = fopen("$document_root/../orders/order.txt",'w');// ..表示文档根目录的父目录,这是个相对路径,描述了一个相对于文档根目录的文件系统位置,w是只写模式
$document_root = $_SERVER['DOCUMENT_ROOT'];
调用fopen()的时候,需要传递两个、三个或者四个参数
第三个参数 可选 如果要在include_path中搜索一个文件,就设置为true,同时不需要提供目录名称或路径
$fp = fopen("order.txt",'ab',true);
第四个参数 可选 允许文件名称带有协议名称前缀以及打开远程文件。
文件模式总结:
r 只读 从文件头开始读
w 只写 从文件头开始写。如果改文件已经存在,将删除所有文件已有的内容。文件不存在,会创建这个文件
x 谨慎写 如果文件已经存在,改文件将不会被打开。函数返回false,php产生警告
a 追加 打开文件,如果文件已有内容,讲从文件末尾开始追加写。如果文件不存在,将会创建这个文件
b 二进制模式 用于与前四个模式进行连接,例如 ab 追加二进制
t 文本 用于与前四个模式进行连接。
@$fp = fopen("$document_root/../orders/order.txt",'ab');
if(!$fp){
echo "aaabbbccc";
exit;
}
错误抑制操作符,告诉PHP抑制所有由该函数调用所产生的错误。
写文件
fwrite()函数
int fwrite (resource handle,sting [, int length])//第三个参数是写入最大字符数,可选
//可以通过PHP内置strlen函数获得字符串的长度
fwrite($fp,$outputsting,strlen($outputsting));
关闭文件
fclose($fp);//成功关闭返回true
读文件
$fp = fopen("$document_root/../orders/order.txt",'rb');//以只读模式打开文件
while(!feof($fp))//知道何时读完文件,文件指针指向了文件末尾,返回true,File End Of File
fgets($fp);//一直读,直到遇到换行符/n或者文件结束符EOF
fgetss($fp);//类似上面的,但是可以过滤字符串中包含的PHP和HTML标记
$order = fgetcsv($fp,0,"\t");//例如前面所介绍的制表符或者逗号,可以使用这个函数将文件分成多行
//这个代码将从文件中读取一行,并且在有制表符的地方讲文件内容分行,该函数讲返回一个数组。0表示不希望限制行长度
readfile("$document_root/../orders/orders.txt");//打开这个文件,然后将文件输出到浏览器中,然后再关闭这个文件
fpassthru($fp);//读操作成功,函数将返回true
$filearray = file("$document_root/../orders/order.txt");//将结果发送到一个数组中,每一行都将作为数组的一个元素
file_get_contents($fp);//与readfile相同,但是该函数将以字符串的形式返回文件内容。
fgetc($fp);//从文件中一次读取一个字符,但是会读文件结束符EOF,所以需要搭配feof函数结束
fread($fp,5);//读取任意函数,读五个字节。
file_exists("$document_root/../orders/order.txt");//文件是否存在
filesize("$document_root/../orders/order.txt");//文件大小
rewind(),fseek(),ftell()//在文件中定位