网站建设中PHP的编程8种常见文件操作

 文件和目录的操作 

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

1.打开文件 

resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] ) 

$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()关闭文件, 

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()读取任意二进制数据 

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

$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

转载于www.abm163.com

时间: 2024-09-02 07:20:41

网站建设中PHP的编程8种常见文件操作的相关文章

浅谈网站建设中常见的五种误区

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 大家都知道网站建设相对网站推广来说是比较简单的,因为现在利用CMS系统能够很容易的架构起来一个功能非常足的网站,但是如果把这个网站推广出去却变得非常的困难,实际上在网站建设的时候只要避免下面的五种误区就能够增加推广的效果,甚至能够起到事半功倍的作用,下面我们就来介绍网站建设中常见的五种误区! 一:友情链接的误区 友情链接对于一个网站来说是非常

以爱站网为实例浅析用户体验在网站建设中的作用

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 对于站长来说,爱站网可谓不陌生,可能在读文章的你还经常使用爱站工具查询网站数据.其用户体验可谓是做到了一定的高度,据笔者了解,爱站网有一大批的忠实用户.在此,笔者并不是为爱站网做广告,而是以爱站为例子分析用户体验在网站建设中的重要作用. 为网站留住更多的用户 大家可以通过站长工具查询得知爱站网的Alexa三月平均排名为251名,PR值为5.权

企业网站建设中的栏目设计之二:新闻中心

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 "新闻中心"对于一个企业网站而言是频繁更新的栏目之一,也是对于搜索引擎收录及快照更新来说的重要栏目.它的一些常用别名,例如:新闻资讯,资讯中心.鉴于很多企业网站其他栏目很可能会是长期不变的内容或者说没有那么多信息添加 所以也赋予了"新闻中心"代表企业网站活力的标志性栏目.那么如何设置"新闻中心

浅谈外贸网站建设中的国外审美问题

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 目前全球已经有超过65%的买家在使用互联网寻找供应商,通过传统的展览会,杂志,交易会寻找买家的比例在不断下降.对于一个做外贸行业人来说,外贸网站的重要性在互联网天下的今天可想而知.外贸网站的价值,在国外,只有有价值的网站他们才会游览,在他们眼中,访问时间就是金钱.这样,最大的问题也就出来了,怎样做才能获得更多的外国朋友来访问. 通过对国内的500家外贸企业的调查分析,大约93%的外贸公司都有自己的企业网站.通过对欧美地区的1000名客户调查

经验共享:网站建设中应该注意的12个错误

本文认真总结了网站建设中我们难免犯的一些错误,希望大家做网站的时候要提高警惕. 1. "欢迎访问本站"?免了吧!   像这样没有意义的玩艺儿,包括商号的重复.文字游戏,或者其他自我标榜的东西,是一种让读者厌烦的骚扰.你的主页甚至每一个页面,开始都应该是一个醒目.引人的标题,它传达给读者的信息是:如果你阅读本站(页),你会有如何如何的受益. 2. "建设中"的臭牌子别挂 相信有一定网龄的读者都有过这样的经历:有的站点介绍说得像朵花儿似的,逗得你忍不住想进去看看,主页也

浅谈域名注册在网站建设中的重要性

域名是Internet网络上的一个服务器或一个网络系统的名字,相当于房子的门牌号码:在全世界,没有重复的域名,域名具有唯一性.域名是Internet中用于解决地址对应问题的一种方法.可以说是一个技术名词:但是由于Internet已经成为了全世界通用,域名也自然地成为了一个社会科学名词. 域名注册是一个网站建设最重要的因素之一,也是跨出网站成功之路的第一步.一个好的域名能够对网站的发展起到相当的作用,如何在当前饱和的域名注册市场中抢注到自己心仪的域名,这是站长面临的重要课题. 一般而言,新手站长朋

浅谈网站建设中最令人讨厌的用户体验

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网站建设在互联网高速发展的时代已经成了门槛很低的技术工作了,现在很多网站都是通过网络上下载的程序随便修改一下再申请个域名和空间就建好了一个网站.所以,随着越来越多的网站上线,用户体验被提上了一个层次,许多大型门户网站都有专门的用户体验部门去发现用户访问网站时出现的问题并提出合理的建议去改善.而许多网站为了提高访问量及获取更多的广告展示机会,完

网站建设中容易忽视的细节:网站副导航

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 看过很多企业网站的结构,很多企业网站里面也都加入了副导航.什么叫做副导航呢?简单点说就是在网站左侧或者右侧有一个导航条,一般都是产品导航.很多企业在网站建设中,都不知道网站副导航的作用,所以也都没加.今天老冯(冯东阳)就给大家说一下你容易忽视的细节:网站副导航. 网站副导航的作用是什么呢? 只所以在首页增加网页副导航,是为了方便用户更直接的找

企业网站建设中的栏目设计之三:产品中心

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 设想你的企业建设起来之后,你最想让浏览者长时间驻足查看的是你网站哪个栏目呢? 估计大家都会异口同声都会说是"产品中心".是的!产品中心栏目应该来说是一个企业网站的重中之重了.如果你是做服务行业的,这个栏目名称就可能叫做服务项目.服务中心之类的名称."突出特点,突出价值,突出服务"正是对这个栏目建设思想的