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作的文本留言本的例子(五)
Oct 09 PHP
让你的网站首页自动选择语言转跳
Dec 06 PHP
PHP4与PHP5的时间格式问题
Feb 17 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
PHP empty函数报错解决办法
Mar 06 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
PHP使用QR Code生成二维码实例
Jul 07 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中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
js实现打字小游戏
2019/12/17 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
python使用urllib2提交http post请求的方法
2015/05/26 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
Python os模块常用方法和属性总结
2020/02/20 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
房地产销售经理岗位职责
2014/01/01 职场文书
学生请假条
2014/04/11 职场文书
创建文明城市标语
2014/06/16 职场文书
停车位租赁协议书
2014/09/24 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
网络研修随笔感言
2015/11/18 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
linux下安装redis图文详细步骤
2021/12/04 Redis
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers