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函数,php爱好者站推荐
Mar 19 PHP
php SQL防注入代码集合
Apr 25 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
PHP将XML转数组过程详解
Nov 13 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 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_flip() 将数组键名与值对调
2011/11/07 PHP
php常用hash加密函数
2014/11/22 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
JScript的条件编译
2007/05/29 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
python科学计算之narray对象用法
2019/11/25 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
现金出纳岗位职责
2014/03/15 职场文书
三八节主持词
2014/03/17 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
2016年端午节寄语
2015/12/04 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python