php 使用fopen函数创建、打开文件详解及实例代码

 更新时间:2016年09月24日 14:38:37   投稿:lqh  
这篇文章主要介绍了php 使用fopen函数创建、打开文件详解及实例代码的相关资料,需要的朋友可以参考下

php中没有单独的文件创建函数,如果我们想创建函数,可以使用fopen(),fopen()函数字面意思是打开文件,但该函数也有创建文件的功能,当使用 fopen() 函数打开一个文件时,如果文件不存在,则会尝试创建该文件,并返回一个资源。

php fopen函数介绍

fopen函数打开文件或者 URL

语法:

resource fopen( string filename, string mode )

fopen()将 filename 指定的名字资源绑定到一个流上。

参数:

1. filename为尝试打开/创建的文件名。

如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。

如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。

2. mode 指定了打开模式,其可能的值如下:

打开模式 说明
r 只读,并将文件指针指向文件开始位置
r+ 读写,将文件指针指向文件开始位置
w 只写,将文件指针指向文件开始位置并将文件内容清空,如果文件不存在则尝试创建之
w+ 读写,将文件指针指向文件开始位置并将文件内容清空,如果文件不存在则尝试创建之
a 追加,将文件指针指向文件末尾来操作,如果文件不存在则尝试创建之
a+ 读写追加,将文件指针指向文件末尾来操作,如果文件不存在则尝试创建之
x 只写,并创建文件,如果文件已存在,则 fopen() 调用失败并返回 FALSE
x+ 读写,并创建文件,如果文件已存在,则 fopen() 调用失败并返回 FALSE

 

php fopen函数实例

1、使用fopen函数创建文件:

$my_file = 'file.txt';//如果文件不存在(默认为当前目录下)
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file); //implicitly creates file

2、使用fopen函数打开文件:

$my_file = 'file.txt';//假设文件file.txt存在
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file); //open file for writing ('w','r','a')...


3、fopen函数结合fread读取文件:

$my_file = 'file.txt';
$handle = fopen($my_file, 'r');
$data = fread($handle,filesize($my_file));


4、fopen函数结合fwrite函数写文件

$my_file = 'file.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file);
$data = 'This is the data';
fwrite($handle, $data);

5、fopen函数结合fwrite函数向文件中追加内容:

$my_file = 'file.txt';
$handle = fopen($my_file, 'a') or die('Cannot open file: '.$my_file);
$data = 'New data line 1';
fwrite($handle, $data);
$new_data = "\n".'New data line 2';
fwrite($handle, $new_data);

6、fopen() 函数还可用于打开互联网上的 URL 地址:

<?php
$fh = fopen("http://www.baidu.com/", "r");
if($fh){
  while(!feof($fh)) {
    echo fgets($fh);
  }
}
?>

注意:fopen() 返回的只是一个资源,要想显示打开的页面地址,还需要用 fgets() 函数读取并输出。

通过此文希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • laravel接管Dingo-api和默认的错误处理方式

    laravel接管Dingo-api和默认的错误处理方式

    今天小编就为大家分享一篇laravel接管Dingo-api和默认的错误处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 谈谈 PHP7新增功能

    谈谈 PHP7新增功能

    php7发布已有半月,最近有时间了解一下php7的新特性,当然,这个版本最大的特点是性能的提升,对php7 新增功能的相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • PHP网页游戏学习之Xnova(ogame)源码解读(九)

    PHP网页游戏学习之Xnova(ogame)源码解读(九)

    这篇文章主要介绍了PHP网页游戏Xnova(ogame)源码解读的舰队相关函数部分,需要的朋友可以参考下
    2014-06-06
  • thinkphp常见路径用法分析

    thinkphp常见路径用法分析

    这篇文章主要介绍了thinkphp常见路径用法,实例分析了__PUBLIC__、__ROOT__、__APP__、__URL__、__ACTION__及__SELF__等标签常量的用法,需要的朋友可以参考下
    2014-12-12
  • thinkphp普通查询与表达式查询实例分析

    thinkphp普通查询与表达式查询实例分析

    这篇文章主要介绍了thinkphp普通查询与表达式查询,以实例形式较为详细的分析了thinkphp中的普通查询与表达式查询具体用法,包含普通查询的字符串方式与数组方式以及表达式查询中的各种常用技巧,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • php 404错误页面实现代码

    php 404错误页面实现代码

    如果访问您站点的用户由于各种原因暂时出现无法访问页面的错误,如何给他一个友好的答复,并且你也知道发生了这个错误,看看下面这段程序,是用来定制404错误页面和发通知给网管。
    2009-06-06
  • 关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析

    关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析

    这篇文章主要介绍了关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析的相关资料,需要的朋友可以参考下
    2016-01-01
  • Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解

    Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解

    这篇文章主要给大家介绍了关于Laravel中Intervention/image图片处理扩展包的安装、使用与在使用可能遇到的坑的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • PHP本地进行API接口测试的实例

    PHP本地进行API接口测试的实例

    下面小编就为大家分享一篇PHP本地进行API接口测试的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • PHP将XML转数组过程详解

    PHP将XML转数组过程详解

    本文讲的是用PHP将XML对象转换成数组的方法
    2013-11-11

最新评论