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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
php 数组的指针操作实现代码
Feb 08 PHP
20个PHP常用类库小结
Sep 11 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
PHP加密扩展库Mcrypt安装和实例
Nov 10 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
PHP动态柱状图实现方法
Mar 30 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
详解PHP序列化和反序列化原理
Jan 15 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
python检测某个变量是否有定义的方法
2015/05/20 Python
详解Python编程中包的概念与管理
2015/10/16 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
文明工地标语
2014/06/16 职场文书
干部对照检查材料范文
2014/08/26 职场文书
廉政承诺书范文
2015/04/28 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL