当前位置: 网学 > 编程文档 > PHP > 正文

PHP编程:介绍常见的文件操作方式

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/04

PHP处理本地服务器上的文件和目录是非常方便的,但有时候会出现权限和路径相关的问题

1.打开文件

  1. resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )  
  2. $handle = fopen(filename,mode)//打开文件,返回代表此文件的资源的句柄 

文件名称可以使用相对路径或者绝对路径也可以使用网络协议模式,打开模式具有r\r+\w\w+\a\a+\x\x+\b

在操作二进制文件时如果没有指定 ''b'' 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 ''b'' 标记。

以下是几种打开文件的方式

  1. $fp = @fopen(''log.txt'',"rb");  
  2. $fp = @fopen(''../log.txt'',"rb");  
  3. $fp = @fopen("http://www.runer.com.cn/default.htm","rb");
  4. //还可以使用ftp和ghoper等协议,必须启用php.ini文件中的allow_url_fopen选项 

  1. $filename1 = "userinfo.txt";//目录下或include_path中存在这个文件  
  2. $filename2 = "test.txt";//目录下或include_path并不存在这个文件  
  3. $resource1 = fopen($filename1,"rb");  
  4. @$resource2 = fopen($filename2,"rb");//因为目录中不存在这个文件,并且并未使用或include_path寻找包含文件所在路径则此操作会报错,使用错误抑制符@可以迫使浏览器不输出错误信息  
  5. if($resource1)  
  6. echo "打开文件{$filename1}成功";  
  7. if(!@fopen($filename2,"r"))  
  8. echo "打开文件{$filename2}不成功"

输出结果:打开文件userinfo.txt成功

2.使用完毕文件后,要显式的告诉PHP已经使用完文件,让操作系统确保将文件的所有内容正确地从缓冲区刷新到硬盘

使用fclose()关闭文件,

  1. bool fclose ( resource handle )//关闭一个已打开的文件指针  

3.读取文件,fopen函数的mode参数允许读取,PHP提供了几个函数从文件读取数据

string fgets ( int handle [, int length] )从文件指针中读取一行,在二进制文件上尝试fgets会产生不可预测的结果

如果不指定长度,默认读取1K数据,碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止

string fgetss ( resource handle [, int length [, string allowable_tags]] )从文件指针中读取一行并过滤掉 HTML 标记

fgetc()读取单个字符

fread()读取任意二进制数据

代码部分:

  1. $handle = fopen ("test.jpg""rb");  
  2. $c;  
  3. while (!feof($handle)) {  
  4. $contents .= @fread($handle, 8192);//循环读取并将其合并为一个大块文件  
  5. }  
  6. fclose($handle); 

4.判断文件读取的状态

每个文件句柄都有一个文件指针,或者一个指出下一个操作将在文件中哪里发生的游标,根据fopen函数的mode参数

文件指针最初位于文件的开头(0),或者文件的末尾

feof()可以判断文件是否已经到末尾(到末尾后函数返回TRUE)

filesize()函数返回文件的大小 5.写入文件

fwrite()函数执行文件写入

代码部分:

  1. $filename = ''test.txt'';  
  2. $somec;   
  3. // 首先我们要确定文件存在并且可写。  
  4. if (is_writable($filename)) {  
  5. // 在这个例子里,我们将使用添加模式打开$filename,  
  6. // 因此,文件指针将会在文件的开头,  
  7. // 那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。  
  8. if (!$handle = fopen($filename''a'')) {  
  9. echo "不能打开文件 $filename";  
  10. exit;  
  11. }  
  12. // 将$somecontent写入到我们打开的文件中。  
  13. if (fwrite($handle$somecontent) === FALSE) {  
  14. echo "不能写入到文件 $filename";  
  15. exit;  
  16. }  
  17. echo "成功地将 $somecontent 写入到文件$filename";  
  18. fclose($handle);  
  19. else {  
  20. }  
  21. echo "文件 $filename 不可写"

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号