PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码


Posted in PHP onMarch 25, 2016

创建文件我们用到函数

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 相关文章推荐
PHP 文件上传源码分析(RFC1867)
Oct 30 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 PHP
PHP文件缓存类示例分享
Jan 30 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
微信支付之JSAPI公众号支付详解
May 15 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
php用正则判断是否为数字的方法
Mar 25 #PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 #PHP
PHP程序员的技术成长规划
Mar 25 #PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 #PHP
PHP 生成微信红包代码简单
Mar 25 #PHP
PHP实现动态执行代码的方法
Mar 25 #PHP
PHP动态生成指定大小随机图片的方法
Mar 25 #PHP
You might like
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php中rename函数用法分析
2014/11/15 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
javascript 自定义事件初探
2009/08/21 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
JS简单计算器实例
2015/01/20 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python离线安装外部依赖包的实现
2020/02/13 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
党委书记岗位职责
2013/11/24 职场文书
办理护照介绍信
2014/01/16 职场文书
公司中秋节活动方案
2014/02/12 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
学校重阳节活动总结
2015/03/24 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
python ConfigParser库的使用及遇到的坑
2022/02/12 Python