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 相关文章推荐
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
PHP入门速成教程
Mar 19 PHP
php实现mysql数据库备份类
Mar 20 PHP
Discuz! Passport 通行证整合
Mar 27 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
PHP中数组定义的几种方法
Sep 01 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php好代码风格的阶段性总结
Jun 25 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 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 session应用实例 登录验证
2009/03/16 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
js实现单一html页面两套css切换代码
2013/04/11 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
微信小程序实现购物车小功能
2020/12/30 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python常用算法学习基础教程
2017/04/13 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
Python连接字符串过程详解
2020/01/06 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
linux面试题参考答案(4)
2013/01/28 面试题
如何开启linux的ssh服务
2015/02/14 面试题
承兑汇票转让证明怎么写?
2014/11/30 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL