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 相关文章推荐
MySQL中create table语句的基本语法是
Jan 15 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
Yii多表联合查询操作详解
Jun 02 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
PHP chr()函数讲解
Feb 11 PHP
详解Laravel服务容器的绑定与解析
Nov 05 PHP
PHP Trait功能与用法实例分析
Jun 03 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
python使用RNN实现文本分类
2018/05/24 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
linux安装python修改默认python版本方法
2019/03/31 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
中学生爱国演讲稿
2013/12/31 职场文书
中层竞聘演讲稿
2014/01/09 职场文书
实习生求职自荐信
2014/02/07 职场文书
校庆接待方案
2014/03/18 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL