PHP文件操作之读写
-
PHP中对文件的操作:创建、读取、上传、编辑。 PHP提过了多种相关的函数。
1、readfile()
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
参数:
- filename:文件名;
- use_include_path:是否也在include_path中搜索文件;
- context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
返回值:返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用,否则会显示错误信息。
示例:
1.php和new.txt在同一个文件夹1.php内容:
<?php echo @readfile("new.txt"); ?>- 1
- 2
- 3
new.txt内容:
It's a new file.运行1.php结果:
It's a new file.162、fopen()
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource$context ]] )
参数:
- filename:如果 filename 是 “scheme://…” 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。;
- mode:指定了所要求到该流的访问类型;
- use_include_path:是否也在include_path中搜索文件;
- context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
返回值:
成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。
注:文件访问类型表mode 说明 “r” 只读方式打开,将文件指针指向文件头。 “r+” 读写方式打开,将文件指针指向文件头。 “w” 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 “w+” 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 “a” 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 “a+” 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 “x” 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL “x+” 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL 3、fread()
string fread ( resource $handle , int $length )
从文件指针 handle 读取最多 length 个字节参数:
- head:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
- length:最多读取 length 个字节。
返回值:
返回所读取的字符串, 或者在失败时返回 FALSE。4、fclose()
bool fclose ( resource $handle )
将指定文件关闭(好习惯,减少服务器资源占用)。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。5、fgets()
string fgets ( resource $handle [, int $length ] )
从文件中读取一行数据。从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。6、feof()
bool feof ( resource $handle )
测试文件指针是否到了文件结束的位置。7、fgetc()
string fgetc ( resource $handle )
从文件中读取单个字符。8、fwrite()
int fwrite ( resource $handle , string $string [, int $length ] )
参数:
- handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
- string:要写入的字符串;
- length:如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
返回值:
fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。9、一个超级简单的评论墙
<html> <head> <title>评论墙</title> </head> <body> <!--评论表单--> <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>"> 昵称:<input type="text" name="name"></input> <br /> 评论:<textarea rows='5' cols='19' name="comment"></textarea> <br /> <input type="submit" name="submit" value="提交"> </form> <!--保存评论到文件--> <?php /** 文件的读写测试 */ if($_SERVER['REQUEST_METHOD']=='POST'){ #打开文件 $fname="D:\\comment.txt"; $file=fopen($fname,"a+"); #写入数据 $name=@$_POST['name']; $comment=@$_POST['comment']; $str=$name."`".$comment."\r\n"; fwrite($file,$str); #关闭文件 fclose($file); } ?> <!--显示评论内容--> <table cellpadding="4" > <tr> <td><b>昵称</b></td> <td><b>评论</b></td> </tr> <?php $fname="D:\\comment.txt"; $file=fopen($fname,"r"); while(!feof($file)){ $line=fgets($file); $arr=explode("`",$line); echo @"<tr><td>$arr[0]</td><td>$arr[1]</td></tr>"; } fclose($file); ?> </table> </body> </html>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
版权声明:本文为[扫地僧林怀民](http://weibo.com/u/5718377389)原创文章,需要转载的请联系我,有问题欢迎评论或私信。

浙公网安备 33010602011771号