PHP打开和关闭文件操作函数总结

 更新时间:2014年11月18日 10:09:21   投稿:junjie  
这篇文章主要介绍了PHP打开和关闭文件操作函数总结,本文讲解的就是fopen()和fclose()函数,其中着重讲解了fopen()函数,需要的朋友可以参考下

在处理文件内容之前,通常需要建立与文件资源的连接,即打开文件。同样,结束该资源的操作后,应当关闭连接资源。所谓打开文件,实际是建立文件的各种有关信息,并使文件指针指向该文件,就可以发起输入或输出的实体联系在一起,也就禁止再对该文件进行操作。在PHP中可以通过标准函数fopen()建立与文件资源的连接,使用fclose()函数关闭通过fopen()函数打开的文件资源。

①函数fopen()

该函数用来打开一个文件,并在打开一个文件时,还需要指定如果使用它。也就是以哪种文件模式打开文件资源。服务器上的操作系统文件必须知道要对打开的文件进行什么操作。操作系统需要了解在打开这个文件之后,这个文件是否还允许其他的程序脚本再打开,还需要了解脚本的属主用户是否具有在这种方式下使用该文件的权限。该函数的原型如下所示:

复制代码 代码如下:

resource fopen(string filename,string mode[,bool use_include_path[,resource zcontext])            //打开文件

第一个参数需要提供要被打开文件的URL。这个URL可以是脚本所在的服务器中的绝对路径,也可以是相对路径,还可以是网络资源中的文件。第二个参数需要提供文件模式,文件模式可以告诉操作系统如何处理来自其他人或脚本的访问请求,以及一种用来检查你是否有权访问这个特定文件的写法。当在打开文件时有三种选择:

★打开一个文件为了只读、只写或者是读和写。
★如果要写一个文件,可以覆盖所有已有的文件内容,或者需要将新数据追加到文件末尾。
★如果在一个区分二进制文件和纯文本文件的系统上写一个文件,还必须指定采用的方式。

函数fopen()也支持以上三中房四海的组合,只需要在第二个参数中提供一个字符串,指定将对文件进行的操作即可。在下表中列出了可以使用的文件模式及其意义。

第三个参数是可选的,如果资源位于本地文件系统,PHP则认为可以使用本地路径或是相对路径来访问此资源。如果将这个参数设置为1,这样就会使PHP考虑配置指令include_path中指定的路径(在PHP的配置文件中设置)。

第四个参数也是可选的,fopen()函数允许文件名称以协议名称开始,例如“http://”,并且在一个远程位置打开该文件。通过设置这个参数,还可以支持一些其他的协议。

如果fopen()函数成功地打开一个文件,该函数将返回一个指向这个文件的文件指针。对该文件进行操作所使用的读、写以及其他的文件操作函数,都要使用这个资源来访问该文件。如果打开文件失败,则返回FALSE。函数fopen()的是哟on个示例如下:

复制代码 代码如下:

<?php
//使用绝对路径打开file.txt文件,选择只读模式,并返回资源$handle
$handle = fopen("/home/rasmus/file.txt", "r");
//访问文档根目录下的文件,也以只读模式打开
$handle = fopen("$_SERVER['DOCUMENT_ROOT']/data/info.txt","r");
//在Windows平台上,转义文件路径的每个反斜线,或者用斜线,以二进制和只写模式组合
$handle = fopen("C:\\data\\file.gif", "wb");
//使用相对路径打开file.txt文件,选择只读模式,并返回资源$handle
$handle = fopen("../data/info.txt", "r");
//打开远程文件,使用HTTP协议只能以只读的模式打开
$handle = fopen("http://www.example.com", "r");
//使用FTP协议打开远程文件,如果FTP服务器可写,则可以以写的模式打开
$handle = fopen("ftp://user:password@example.com", "w");
?>

②函数fclose()

资源类型属于PHP的基本类型之一,一旦完成资源的处理,一定要将其关闭,否则可能会出现一些预料不到的错误。函数fclose()就会撤销fopen()打开的资源类型,成功时返回TRUE,否则返回FALSE。参数必须是使用fopen()或fsockopen()函数打开的已存的文件指针。在目录操作中opendir()函数也是开启一个资源,使用closedir()将其关闭。

相关文章

  • 功能强大的php分页函数

    功能强大的php分页函数

    这篇文章主要为大家分享了功能强大的php分页函数,为php初学者分析一下php分页实现方法,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Java和PHP在Web开发方面对比分析

    Java和PHP在Web开发方面对比分析

    本文主要从8个方面对php和java在做web开发方面的优劣性做了分析对比,非常不错的一篇文章,这里推荐给小伙伴们。
    2015-03-03
  • php上传图片客户端和服务器端实现方法

    php上传图片客户端和服务器端实现方法

    这篇文章主要介绍了php上传图片客户端和服务器端实现方法,涉及php操作文件的技巧,涉及图片后缀验证、文件重命名等常用方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • php计算两个文件相对路径的方法

    php计算两个文件相对路径的方法

    这篇文章主要介绍了php计算两个文件相对路径的方法,涉及php操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现将base64编码字符串转换成图片示例

    PHP实现将base64编码字符串转换成图片示例

    这篇文章主要介绍了PHP实现将base64编码字符串转换成图片,涉及php编码转换、文件读写等简单处理技巧,需要的朋友可以参考下
    2018-06-06
  • php获得客户端浏览器名称及版本的方法(基于ECShop函数)

    php获得客户端浏览器名称及版本的方法(基于ECShop函数)

    这篇文章主要介绍了php获得客户端浏览器名称及版本的方法,基于ECShop函数get_user_browser实现该功能,非常具有实用价值,需要的朋友可以参考下
    2015-12-12
  • php处理斐波那契数列非递归方法

    php处理斐波那契数列非递归方法

    phpchina上有个名人叫大白菜心,经常会拿这个事来说事。传统处理会把斐波那契数列用递归来处理,效率慢是必然的。不过他说事说吧,居然不拿出答案来,就有点不厚道了
    2012-02-02
  • PHP注释实例技巧

    PHP注释实例技巧

    php注释一般我们在调试程序过程中,经常需要将不需要执行的或对于程序函数的一些解释都用的到,下面是一些常用的总结
    2008-10-10
  • PHP多线程编程之管道通信实例分析

    PHP多线程编程之管道通信实例分析

    这篇文章主要介绍了PHP多线程编程之管道通信,实例分析了管道通信的原理与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 刷新PHP缓冲区为你的站点加速

    刷新PHP缓冲区为你的站点加速

    这篇文章主要介绍了通过刷新PHP缓冲区可以加速你的站点,非常实用的小技巧,需要的朋友可以参考下
    2015-10-10

最新评论