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


Posted in PHP onSeptember 24, 2016

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() 函数读取并输出。

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

PHP 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
php中session使用示例
Mar 29 PHP
php图片的二进制转换实现方法
Dec 15 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
PHP实现简易blog的制作
Oct 24 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
PHP后期静态绑定实例浅析
Dec 21 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 PHP
php fread读取文件注意事项
Sep 24 #PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 #PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 #PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 #PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 #PHP
mysql alter table命令修改表结构实例详解
Sep 24 #PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 #PHP
You might like
php 模拟POST提交的2种方法详解
2013/06/17 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python 判断是否为正小数和正整数的实例
2017/07/23 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python调用其他文件函数或类的示例
2019/07/16 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
python时间日期操作方法实例小结
2020/02/06 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python configparser模块应用过程解析
2020/08/14 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
Python项目打包成二进制的方法
2020/12/30 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
物理系毕业生自荐信
2013/11/01 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
Python 制作自动化翻译工具
2021/04/25 Python
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电