PHP对文件数据的存储和检索

 

@(主要是对文件的操作)

文件处理:php操作文件主要是写入和读取这两种。执行的步骤都是一样的。

1.打开这个文件。如果打不开就先创建它。
2.将数据写入这个文件,或者将数据读出这个文件。
3.关闭文件。

打开文件

打开文件用open()函数

$fp = fopen("$DOCUMENT_ROOT/../orders/orderes.txt", "w")

open()函数一共接受4个参数。通常需要两个函数,第一个是文件目录,第二个是文件模式,即是读还是写。一般建议在文件文件模式上标配’b’,这个是用二进制格式,方便再不同平台之间移植。
另外两个参数都是可选的,第3个参数值是true或者false,可以在include_path里面搜索(这个是在php配置中设置的),第4参数是用来打开FTP和FTTP文件的。
文件打不开的时候
一般考虑是不是文件权限的问题,可以检查一个文件权限。
可以自己给出错误提示:

@$fp = fopen("$DOCUMENT_ROOT/../orders/orderes.txt", "ab");
if (!$fp){
    echo "<p><strong> Your order could not be processed at this time. Please try again later.<strong><p>";
    exit;
}

写文件

写文件用函数fwrite()或者fputs(),第一个函数的格式是:

fwrite($fp, $outputstring);

第一个是打开的文件指引,第二个是要写进去的字符串。还有一个可选参数length是写入的最大字符数。
写入的文件格式
要写入文件的字符串表符和换行符来表示分割和换行操作

关闭文件

关闭文件只需要一个fclose()函数。

fclose($fp);

如果被成功关闭则返回true, 否则返回false.

读文件

用fopen()函数打开文件之后就需要读取,读取的方式有很多种。
只读的模式打开文件: fopen()

$fp = fopen("order.text", "rb");

r是只读模式。
知道何时读完文件: feof()
feof($fp)函数只接收文件指针作为参数,如果文件指针指向了文件末尾,则返回true,否则返回false。feof表示file enf of file
每次读取一行数据:fgets(), fgetss(), fgetcsv()
fgets()函数每次从文件中读取一行内容,每行是按照换行符或者文件结束符EOF,或者函数限制最大长度减去1B.

$order = fgets($fp, 999);

fgetss()函数的意思和参数同fgets()一样的,但是这个函数会自动过滤html和php的标记。
fgetcsv()函数是进一步的加强,可以选择一个界定符号,默认是按照fgets()中的来决定哪一个是一行,但是可以决定比如限定制表符处结束为一行。

$order = fgetcsv($fp, 100, '	');

读取整个文件:readfile(), fpassthru(), file()
readfile()打开文件,并且将文件内容输出到标准输出中,然后再关闭这个文件

readfile("orsers.txt");

fpassthru()的使用必须先用fopen()把文件打开,然后这个函数的作用就跟readfile()一样了,把文件输出到标准输出,然后关闭文件。下面的两行代码等价与readfile()函数中的一行:

1 $fp = fopen('order.txt', 'rb');
2 fpassthru($fp);

file()会把整个文件发送到一个数组中:

$filearray = file("order.txt");

这行代码将整个文件读入到一个名文$filearray的数组中。
读取一个字符:fgetc()
就是从文件中一次读取一个字符,只接收一个参数。

$char = fgets($fp);

读取任意长度:fread()
就是从文件中读取任意长度的字节。

$char = fread($fp, 999);

其他一些有用的函数
file_exists()检查一个文件是否存在。
filesize()检查一个文件的大小。
unlink()删除一个文件。

原文地址:https://www.cnblogs.com/cenyu/p/5951566.html