手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP编程中八种常见的文件操作方式
PHP编程中八种常见的文件操作方式
摘要:文件和目录的操作PHP处理本地服务器上的文件和目录是非常方便的,但有时候会出现权限和路径相关的问题1.打开文件resourcefopen(s...

文件和目录的操作

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

1.打开文件

resourcefopen(stringfilename,stringmode[,booluse_include_path[,resourcezcontext]])

$handle=fopen(filename,mode)//打开文件,返回代表此文件的资源的句柄

文件名称可以使用相对路径或者绝对路径也可以使用网络协议模式,打开模式具有rr+ww+aa+xx+b

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

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

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

$fp=@fopen('log.txt',"rb");

$fp=@fopen('../log.txt',"rb");

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

////////////////////////////代码部分////////////////////////////////////////

$filename1="userinfo.txt";//目录下或include_path中存在这个文件

$filename2="test.txt";//目录下或include_path并不存在这个文件

$resource1=fopen($filename1,"rb");

@$resource2=fopen($filename2,"rb");//因为目录中不存在这个文件,并且并未使用或include_path寻找包含文件所在路径则此操作会报错,使用错误抑制符@可以迫使浏览器不输出错误信息

if($resource1)

echo"打开文件{$filename1}成功";

if(!@fopen($filename2,"r"))

echo"打开文件{$filename2}不成功";

//////////////////////////////////////////////////////////////////////////

---------------------输出结果----------------------------------------

打开文件userinfo.txt成功

---------------------------------------------------------------------

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

使用fclose()关闭文件,

boolfclose(resourcehandle)//关闭一个已打开的文件指针

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

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

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

stringfgetss(resourcehandle[,intlength[,stringallowable_tags]])从文件指针中读取一行并过滤掉HTML标记

fgetc()读取单个字符

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

////////////////////////////代码部分////////////////////////////////////////

$handle=fopen("test.jpg","rb");

$c;

while(!feof($handle)){

$contents.=@fread($handle,8192);//循环读取并将其合并为一个大块文件

}

fclose($handle);

//////////////////////////////////////////////////////////////////////////

---------------------输出结果----------------------------------------

---------------------------------------------------------------------

4.判断文件读取的状态

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

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

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

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

fwrite()函数执行文件写入

////////////////////////////代码部分////////////////////////////////////////

$filename='test.txt';

$somec;

//首先我们要确定文件存在并且可写。

if(is_writable($filename)){

//在这个例子里,我们将使用添加模式打开$filename,

//因此,文件指针将会在文件的开头,

//那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。

if(!$handle=fopen($filename,'a')){

echo"不能打开文件$filename";

exit;

}

//将$somecontent写入到我们打开的文件中。

if(fwrite($handle,$somecontent)===FALSE){

echo"不能写入到文件$filename";

exit;

}

echo"成功地将$somecontent写入到文件$filename";

fclose($handle);

}else{

}

echo"文件$filename不可写";

//////////////////////////////////////////////////////////////////////////

---------------------输出结果----------------------------------------

成功地将添加这些文字到文件写入到文件test.txt

---------------------------------------------------------------------

对于二进制数据,必须指定第三个参数,它包含写入到磁盘的数据字节数

$result=@fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));

6.文件权限和其他信息

is_readable()//判断文件是否可读

is_writeable()//判断文件是否可写

is_writable()//判断文件是否可写

fileperms()//判断文件的权限(UNIX风格的文件权限测试函数)

file_exists()//是否存在这个文件

fileowner()//判断文件所属用户

filegroup()//判断文件所属组

7.删除和重命名文件

unlink()//删除文件

rename()//重命名文件

8.访问目录

目录访问建议使用前向斜线"/",兼容windows和unix系统

basename()//返回不包括路径信息的文件名

dirname()//返回文件名的目录部分

realpath()//接受相对路径,返回文件的绝对路径

pathinfo()//提取给定路径的目录名,基本文件名和扩展名

opendir()//打开目录,返回资源句柄

readdir()//读取目录项

rewinddir()//将读取指针返回开头

closedir()//关闭读取句柄

chdir()//改变当前脚本执行期间的当前工作目录

mkdir()//创建目录

rmdir()删除目录

////////////////////////////代码部分////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////

---------------------输出结果----------------------------------------

filename:web:filetype:dir

filename:study:filetype:dir

【PHP编程中八种常见的文件操作方式】相关文章:

把从SQL中取出的数据转化成XMl格式

如何对PHP程序中的常见漏洞进行攻击(上)

PHP SPL标准库之文件操作

PHP中的命名空间详细介绍

PHP中的魔术方法总结和使用实例

PHP4中实现动态代理

PHP处理密码的几种方式

PHP文本数据库的搜索方法

PHP文件操作方法汇总

PHP递归调用数组值并用其执行指定函数的方法

上一篇: PHP初学入门
精品推荐
分类导航