PHP快速入门 -- 函数fopen()

本文详细介绍了PHP中使用fopen函数打开文件的方法,包括文件路径、模式等参数的使用。此外,还介绍了多种读取文件的方式,如readfile、fpassthru、file、file_get_contents等函数的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、fopen(filename,mode,include_path,context)

filename:指定文件。

1、本地文件的绝对路径或相对路径;

2、远程文件。FTP、HTTP或者其他协议的文件路径。

以ftp://开始的,fopen()函数将建立一个连接到指定服务器的被动模式,并返回一个指向文件开始的指针

以http://开始的,fopen()函数将建立一个到指定服务器的HTTP连接,并返回一个指向HTTP响应的指针

mode:文件模式。

a:追加。打开文件,如果文件已有内容,将从文件末尾开始写,如果文件不存在,则创建这个文件

a+:追加。打开文件,如果文件已有内容,将从文件末尾开始读写,如果文件不存在,则创建这个文件

b:二进制。二进制模式,用于与其他模式进行连接。Windows系统可以区分二进制文件和文本文件,Unix不能区分。该模式可以获得最大程度的可移植性

r:只读。打开文件,从文件头开始读

r+:读写。打开文件,从文件头开始读写

w:读写。打开文件,从文件头开始读,如果该文件已经存在,将删除文件所有内容。如果该文件不存在,则创建这个文件

w+:读写。打开文件,从文件头开始读写,如果该文件已经存在,将删除文件所有内容。如果该文件不存在,则创建这个文件。

include_path:是否需要在include_path中搜索文件。

$fp = fopen("test.txt", "ab", true);

不需要提供目录名称或路径,不过搜索会消耗时间和资源。

context:规定文件句柄的环境。


二、读取整个文件

1、readfile()

打开文件,并且将文件内容输出到标准输出中,然后关闭文件

readfile($filename);

2、fpassthru()

先通过fopen打开文件,然后将文件指针作为参数传递给fpasthru()


$fp = fopen($filename, "rb");
fpassthru($fp);


3、file()

与readfile()相似,不同之处在于file()将结果发送到一个数组当中


$data = file($filename);


4、file_get_contents()

与readfile()相似,不同之处在于file_get_contents()将结果以字符串的形式返回,不回显到浏览器中


$data = file_get_contents($filename);


三、读取一行数据


1、fgets()

读取一行数据,知道读到一个换行字符(\n)、或者文件结束符EOF,或者从文件中读取了($length-1)B


$fp = fopen($filename, "rb");
while(!$fp) {
$order = fgets($fp, $length);
}


2、fgetss()

与fgets()相似,不同之处在于fgetss()可以过滤掉任何特殊的标记

$fp = fopen($filename, "rb");
while(!$fp) {
$order = fgetss($fp, $length, $tags);
}

3、fgetcsv()

与fgets()相似,不同之处在于fgetcsv()可以在定界符位置将文件分成多行

$fp = fopen($filename, "rb");
while(!$fp) {
$order = fgetcsv($fp, $length, "\t");
}


四、读取一个字符

1、fgetc()

从文件中一次读取一个字符。它的缺点就是它返回文件结束符EOF,而fgets()不会

	$fp = fopen($filename, "rb");
	while(!feof($fp)) {
		$order = fgetc($fp);
		if(!feof($fp)) {
			echo $order;
		}
	}

五、读取任意长度

1、fread()

从文件中读取任意长度的字节

$fp = fopen($filename, "rb");
while(!$fp) {
$order = fread($fp, $length);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值