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 CLI模式下的多进程应用分析
Jun 03 PHP
探讨如何把session存入数据库
Jun 07 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 PHP
round robin权重轮循算法php实现代码
May 28 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
PHP 文件上传后端处理实用技巧方法
Jan 06 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
PHP 实现缩略图
Mar 09 PHP
PHP遍历数组的6种方式总结
Nov 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
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php中的动态调用实例分析
2015/01/07 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
utf8的编码算法 转载
2006/12/27 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
jQuery中focus事件用法实例
2014/12/26 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python如何实现数据的线性拟合
2019/07/19 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
小学语文国培感言
2014/03/04 职场文书
毕业论文评语大全
2014/04/29 职场文书
大学生工作自荐书
2014/06/16 职场文书
小组组名及励志口号
2015/12/24 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python