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实现ODBC数据分页显示一例
Oct 09 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
php给一组指定关键词添加span标签的方法
Mar 31 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
一个简单的域名注册情况查询程序
2006/10/09 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python 元类实例解析
2018/04/04 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
python实现抖音点赞功能
2019/04/07 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
如何利用python发送邮件
2020/09/26 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
《鸟的天堂》教学反思
2014/02/27 职场文书
员工工作表现评语
2014/04/26 职场文书
拉拉队口号
2014/06/16 职场文书
应聘教师自荐书
2014/06/16 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers
Python中的socket网络模块介绍
2022/07/23 Python
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript