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中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
php中的ini配置原理详解
Oct 14 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
ThinkPHP惯例配置文件详解
2014/07/14 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
python在不同层级目录import模块的方法
2016/01/31 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
python访问抓取网页常用命令总结
2017/04/11 Python
Python中类的初始化特殊方法
2017/12/01 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python微信公众号之关键词自动回复
2018/06/15 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
化学专业自荐信
2014/05/28 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
优秀党员申报材料
2014/12/18 职场文书
离婚民事起诉状
2015/08/03 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
公司转让协议书
2016/03/19 职场文书