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

  次阅读 作者:智能小宝 来源:互联网 2016-03-02 15:40 我要评论(0)

文件和目录的操作

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);

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

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

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...