06

PHP学习笔记第二章,主要包括打开/创建/关闭/锁定/删除文件,从文件中读/写数据等内容。

一、打开文件

文件操作的基本步骤是:打开文件–>读/写文件–>关闭文件,其中打开文件是第一步。

1、使用 fopen() 打开文件

fopen() 函数定义:
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

fopen() 函数示例:
$handle = fopen("/home/rasmus/file.txt", "r");
$fp = fopen("$_SERVER['DOCUMENT_ROOT']/../orders/orders.txt",'w');

注意,使用绝对路径时,Linux下是/xxx/,而Windows下是x:\xxx\,一般推荐使用相对目录。

2、打开文件模式

和c语言类似,fopen()同样通过mode参数来确定打开文件的访问类型。

mode 说明
“r” 只读方式打开,将文件指针指向文件头。
“r+” 读写方式打开,将文件指针指向文件头。
“w” 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
“w+” 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
“x” 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
“x+” 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
“a” 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
“a+” 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
“b” 和其它模式组合使用,以二进制方式打开文件,是推荐且默认的方式。
“a+” 和其它模式组合使用,以文本方式打开文件,只在Windows下有效,不推荐。

3、其它注意点

  • 可以打开ftp和http协议的文件,也可以在php.ini关闭allow_url_fopen来禁止打开远程文件。
  • Linux打开文件必须注意该文件的读写权限问题。

二、读写文件

打开文件后,可以用相关函数读取和写入数据。

1、读取文件内容常用函数

string fgets ( resource $handle [, int $length ] )从文件指针开始读取一行,且最大长度不超过length,length默认为1024

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )同fgets,但会过滤除allowable_tags参数外的HTML和PHP的标签。

array fgetcsv ( resource $handle [, int $length [, string $delimiter = ',' [, string $enclosure = '"' [, string $escape='\\']]]] )同fgets,但解析 CSV 字段,返回数组。

string fgetc ( resource $handle )从文件指针开始,读取一个字符。

string fread ( resource $handle , int $length )从文件指针开始,读取指定长度的内容。

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )打开文件并读取整个文件内容至输出缓存,然后关闭文件。

int fpassthru ( resource $handle )读取文件指针当前位置到文件结束的数据至输出缓存。

array file ( string $filename [, int $flags = 0 [, resource $context ]] )将全部文件内容读入一个数组中,每行内容成为一个数组元素。

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen = -1 ]]]] )将全部文件内容读入一个字符串中。

2、写文件常用函数

int fwrite ( resource $handle , string $string [, int $length ] )从文件指针开始,写入最大长度为参数length的字符串内容。

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )打开文件(如果不存在则创建文件),写入data,关闭文件,会覆盖原文件内容,除非指定FILE_APPEND参数。

3、文件指针操作函数

bool rewind ( resource $handle )将文件指针的位置倒回文件的开头。

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )将文件指针的位置移动到参数whence和offset 所指定的位置。

int ftell ( resource $handle )返回文件指针的位置,注意PHP的文件指针是从0开始计数的。

bool feof ( resource $handle )判断文件指针是否已经指向文件末尾。

三、其它文件操作相关函数

bool fclose ( resource $handle )关闭打开的文件。

bool file_exists ( string $filename )检查文件或目录是否存在。

int filesize ( string $filename )返回文件大小。

bool unlink ( string $filename [, resource $context ] )删除指定文件。

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )锁定文件,在NFS和FAT等文件系统上无效。

标签:
除非注明,本博客文章均系原创,转载请以链接形式标明出处地址。

PHP学习笔记2 – 用文件来存取数据 有1条评论

引用:

留下评论 (设置评论头像