PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解


Posted in PHP onFebruary 15, 2019

本文实例讲述了PHP创建文件及写入数据(覆盖写入,追加写入)的方法。分享给大家供大家参考,具体如下:

这里主要介绍了PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码,需要的朋友可以参考下:

创建文件我们用到函数

fopen ( string filename, string mode )

参数:

filename:创建文件名

mode:以什么方式打开文件filename

其中mode可能值列表:

mode 说明
‘r' 只读方式打开,将文件指针指向文件头。
‘r+' 读写方式打开,将文件指针指向文件头。
‘w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
‘x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

下面代码是我通过利用函数fopen创建一个名为Demo,格式为txt的文件,并在文件中写入"Welcome To ItCodeWorld!"的数据。

<?php
//要创建的两个文件
$TxtFileName = "Demo.txt";
//以读写方式打写指定文件,如果文件不存则创建
if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){
echo("创建可写文件:".$TxtFileName."失败");
exit();
}
echo ("创建可写文件".$TxtFileName."成功!</br>");
$StrConents = "Welcome To ItCodeWorld!";//要 写进文件的内容
if(!fwrite ($TxtRes,$StrConents)){ //将信息写入文件
echo ("尝试向文件".$TxtFileName."写入".$StrConents."失败!");
fclose($TxtRes);
exit();
}
echo ("尝试向文件".$TxtFileName."写入".$StrConents."成功!");
fclose ($TxtRes); //关闭指针
?>

PHP 创建文件 ? fopen()

fopen() 函数也用于创建文件。也许有点混乱,但是在 PHP 中,创建文件所用的函数与打开文件的相同。

如果您用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。

下面的例子创建名为 "testfile.txt" 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:

实例

$myfile = fopen("testfile.txt", "w")

PHP 文件权限

如果您试图运行这段代码时发生错误,请检查您是否有向硬盘写入信息的 PHP 文件访问权限。

PHP 写入文件 ? fwrite()

fwrite() 函数用于写入文件。

fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。

下面的例子把姓名写入名为 "newfile.txt" 的新文件中:

实例

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

请注意,我们向文件 "newfile.txt" 写了两次。在每次我们向文件写入时,在我们发送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在写入完成后,我们使用 fclose() 函数来关闭文件。

如果我们打开 "newfile.txt" 文件,它应该是这样的:

Bill Gates
Steve Jobs

PHP 覆盖(Overwriting)

如果现在 "newfile.txt" 包含了一些数据,我们可以展示在写入已有文件时发生的的事情。所有已存在的数据会被擦除并以一个新文件开始。

在下面的例子中,我们打开一个已存在的文件 "newfile.txt",并向其中写入了一些新数据:

实例

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

如果现在我们打开这个 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我们刚写入的数据:

Mickey Mouse
Minnie Mouse

换行符‘\n'和回车符‘\r'

顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符

‘\n' 10 换行(newline)
‘\r' 13 回车(return)

也可以表示为'\x0a'和'\x0d'.(16进制)

在windows系统下,回车换行符号是”\r\n”.但是在Linux等系统下是没有”\r”符号的。

在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定”\r\n”又要判定”\n”。

写程序时可能得到一行,将其进行trim掉'\r',这样能得到你所需要的string了。

PHP file_put_contents() 函数

PHP file_put_contents() 函数是一次性向文件写入字符串或追加字符串内容的最合适选择。

file_put_contents() 函数用于把字符串写入文件,成功返回写入到文件内数据的字节数,失败则返回 FALSE。

语法:

int file_put_contents ( string filename, string data [, int flags [, resource context]] )

参数说明:

参数 说明
filename 要写入数据的文件名
data 要写入的数据。类型可以是 string,array(但不能为多维数组),或者是 stream 资源
flags 可选,规定如何打开/写入文件。可能的值: 1. FILE_USE_INCLUDE_PATH:检查 filename 副本的内置路径 2. FILE_APPEND:在文件末尾以追加的方式写入数据 3. LOCK_EX:对文件上锁
context 可选,Context是一组选项,可以通过它修改文本属性

例子:

<?php
echo file_put_contents("test.txt", "This is something.");
?>

运行该例子,浏览器输出:

18

而 test.txt 文件(与程序同目录下)内容则为:This is something.。

提示

如果文件不存在,则创建文件,相当于fopen()函数行为。
如果文件存在,默认将清空文件内的内容,可设置 flags 参数值为 FILE_APPEND 以避免(见下)。
本函数可安全用于二进制对象。

以追加形式写入内容

当设置 flags 参数值为 FILE_APPEND 时,表示在已有文件内容后面追加内容的方式写入新数据:

<?php
file_put_contents("test.txt", "This is another something.", FILE_APPEND);
?>

执行程序后,test.txt 文件内容变为:

This is something.This is another something.

file_put_contents() 的行为实际上等于依次调用 fopen()fwrite() 以及 fclose() 功能一样。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
类的另类用法--数据的封装
Oct 09 PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 PHP
php连接数据库代码应用分析
May 29 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
php生成短网址示例
May 05 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
PHP实用小技巧之调用录像的方法
Dec 05 PHP
PHP fopen函数用法实例讲解
Feb 15 #PHP
PHP fclose函数用法总结
Feb 15 #PHP
PHP filesize函数用法浅析
Feb 15 #PHP
PHP数组遍历的几种常见方式总结
Feb 15 #PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 #PHP
PHP crypt()函数的用法讲解
Feb 15 #PHP
phpinfo无法显示的原因及解决办法
Feb 15 #PHP
You might like
多数据表共用一个页的新闻发布
2006/10/09 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
js创建对象的方式总结
2015/01/10 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
python 读取串口数据的示例
2020/11/09 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
出国导师推荐信
2015/03/25 职场文书
处罚决定书范文
2015/06/24 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python