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的论坛(6)
Oct 09 PHP
ADODB类使用
Nov 25 PHP
php项目打包方法
Feb 18 PHP
PHP 实用代码收集
Jan 22 PHP
PHP面向对象概念
Nov 06 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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之第十天
2006/10/09 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
js实现右键菜单功能
2016/11/28 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python实现二叉堆
2016/02/03 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
python函数的万能参数传参详解
2019/07/26 Python
Python笔记之观察者模式
2019/11/20 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
方正Java笔试题
2014/07/03 面试题
幼儿园运动会入场词
2014/02/10 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
人事文员岗位职责
2015/02/04 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS