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 相关文章推荐
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php常用hash加密函数
Nov 22 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 PHP
PHP底层运行机制与工作原理详解
Jul 31 PHP
laravel使用redis队列实例讲解
Mar 23 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
openflashchart 2.0 简单案例php版
2012/05/21 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
PHP的自定义模板引擎
2017/03/24 PHP
浅谈javascript 面向对象编程
2009/10/28 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Django实现学员管理系统
2019/02/26 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
浅谈Python中的模块
2020/06/10 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
乡镇网格化管理实施方案
2014/03/23 职场文书
公证书样本
2014/04/10 职场文书
一年级学生期末评语
2014/04/21 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
群众路线个人整改措施
2014/10/24 职场文书
就业导师推荐信范文
2015/03/27 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书