操作文件php,PHP 文件的基本操作

本文介绍了如何使用PHP进行文件操作,包括文件的打开、关闭、读取、写入等基本操作。详细展示了不同场景下的文件处理方法,如本地文件、远程文件的处理技巧,并提供了移动文件指针的具体实现。

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

//文件的基本操作

//fopen()

打开一个文件

//使用绝对路径打开一个文件,选择只读模式,并返回资源$handle

$handle=fopen("D:/lamp/apache2/htdocs/test/file.txt","r");

//访问文档根目录下的文件,也选择只读模式

$handle=fopen($_SERVER['DOCUMENT_ROOT']."/test/file.txt","r");

//打开远程文件,使用http协议只能以读的方式打开

$handle=fopen("http://www.wowsai.com","r");

//使用FTP协议打开远程文件,如果FTP服务器可写,则可以以写的模式打开

//$handle=fopen("ftp://user:[email protected]/file.txt",'w');

//fclose()

关闭打开的资源类型

//fwrite()

向文件中写入内容

$fileName="data.txt";

//声明一个文件的变量

//用只写的方式打开文件,没有则创建,并且在打开失败时通过程序

$f_handle=fopen("data.txt","w")or die("打开".$fileName."文件失败");

for($i=0;$i<10;$i++){

//通过一个循环,向文件中添入内容

fwrite($f_handle,"again\n");

}

fclose($f_handle);

//关闭打开的文件

//file_put_contents()

一次将所有数据写入到指定的文件中

//读取文件内容

//fread()

读取打开的文件

//file_get_contents()

将文件读入字符串

//fgets()

从打开的文件中返回一行

//fgetc()

从打开的文件中返回字符

//file()

把文件读入一个数组中

//readfile()

读取一个文件,并输出到输出缓冲

//feof()

判断一个文件指针是否位于文件的结束处

//从文件中读取指定字节数的内容存入到一个变量中

$fileName2="data.txt";

$f_hand=fopen($fileName2,"r")or die("文件打开失败");

$contents=fread($f_hand,50);

fclose($f_hand);

echo $contents."
";

//从文件中读取全部内容存入到一个变量中,每次读取一部分,循环读取

/* $fileName3="D:/lamp/apache2/icons/link.gif";

//将二进制文件的文件名保存到一个变量中

$f3_handle=fopen($fileName3,"rb")or die("文件打开失败"); //以只读的方式打开文件,模式加了"b"

$f3_contents="";

//声明一个用于保存文件内容的字符串

while(!feof($f3_handle)){

//循环读取文件中的内容,知道文件结束

$f3_contents.=fread($f3_handle,1024);

//每次读取1024个字符

}

fclose($f3_handle);

echo $f3_contents; */

//另一种读取文件全部内容的方法

$fileName4="data.txt";

$f4_handle=fopen($fileName4,"r")or die("文件打开失败");

$f4_con=fread($f4_handle,filesize($fileName4));

//用filesize获取文件的长度,这样来读取文件的全部内容

fclose($f4_handle);

echo $f4_con."
";

//另一种方法读取文件的全部内容,比上面的性能要好的多

echo file_get_contents("data.txt");

$f5_handle=fopen("data.txt","r") or die("文件打开失败");

while(!feof($f5_handle)){

//判断指针是否到文件结尾

$buffer=fgets($f5_handle);

//每次从文件中读取一行

echo $buffer."
";

}

fclose($f5_handle);

$f6_handle=fopen("data.txt","r") or die("文件打开失败");

while(!feof($f6_handle)){

//判断指针是否到文件结尾

$buffer=fgetc($f6_handle);

//每次从文件中读取一个字符

echo $buffer."
";

}

fclose($f6_handle);

print_r(file("data.txt"));

//把文件读入到一个数组中

readfile("data.txt");

//直接将文件中的内容读出,并输出到浏览器

//访问远程文件

确保php.ini中的"allow_url_fopen"是打开的,并且确保远程文件具有访问权限

$ws_file=fopen("http://www.wowsai.com","r")or die("远程文件打开失败");

//打开远程文件

while(!feof($ws_file)){

$ws_line=fgets($ws_file);

if(preg_match("/

(.*)/",$ws_line,$res)){

//使用正则匹配网站的标题

$title=$res[1];

break;

}

}

fclose($ws_file);

echo $title."
";

//移动文件的指针

//ftell()

返回指针的当前位置

//fseek()

移动指针到指定的位置

//rewind()

移动指针到文件的开头

$fp=fopen("data.txt","r") or die("文件打开失败");

//用只读方式打开文件

echo ftell($fp)."
";

//输出刚打开文件时的指针的位置,默认是0

echo fread($fp,10)."
";

//读取文件的前10个字符,文件指针发生了改变

echo ftell($fp)."
";

//读取文件的10个字符后,文件的指针到了10的位置

fseek($fp,30,SEEK_CUR);

//将文件的指针向后移动30个字符

echo ftell($fp)."
";

//文件移动30个字符后,到了40的位置

echo fread($fp,10)."
";

//读取40到50之间的字符,指针会到50

fseek($fp,-10,SEEK_END);

//将指针设置到文件倒数第10的位置

echo fread($fp,10)."
";

//输出文件最后10个字符

rewind($fp);

//将文件指针设置到文件的开头

echo ftell($fp);

//文件的指针又回到了开头,所以会输出0

fclose($fp);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值