在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习。 
将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下: 
1、打开文件(文件操作函数:fopen) 
2、写入文件(文件操作函数:fwrite等) 
3、关闭文件(文件操作函数:fclose) 
下面通过文件读写操作代码实例教程来讲解 
基本的PHP文件写入操作函数fopen、fwrite、fclose应用教程

<?
@$fp = fopen("leapsoulcn.txt","w");
if(!$fp){
echo "system error";
exit();
}else {
// http://www.manongjc.com/article/1343.html
$fileData = "domain"."\t"."www.leapsoul.cn"."\n";
$fileData = $fileData."description"."\t"."PHP网站开发教程网,面向PHP初学者的PHP教程网。"."\n";
$fileData = $fileData."title"."\t"."本文主要讲述PHP文件读写操作中最基本的文件写入教程。";
fwrite($fp,$fileData);
fclose($fp);
}
?>

注释:在这段文件读写操作实例代码中,主要功能是在文件写入两行文字。 
知识点: 
  1、使用fopen函数打开文件,在应用fopen函数准备打开文件时,你首先需要明确: 
  打开文件干什么?是读文件中的数据呢,还是将数据写入文件,亦或者读写文件? 
  另外你需要考虑如果文件中已经存在相关数据,你是覆盖原有文件中的数据呢,还是仅仅将新数据添加至文件末尾 
  这些问题涉及到PHP文件读写操作中的fopen函数中的文件模式的应用,fopen函数原型如下:

// http://www.manongjc.com/article/1344.html
fopen(filename,mode,include_path,context)

调用文件操作函数fopen()时,通常需要传递两个或三个参数。 
filename:规定要打开的文件或URL。可以指定文件的绝对路径,Windows一般为C:\,Unix为/,通过URL,你也可以打开远程文件。在这里写入的文件与PHP文件写入代码文件我放在同一个目录。 
mode:规定要求到该文件/流的访问类型。即打开文件的模式。 
include_path:可选项。如果需要在include_path中搜索文件的话,可以将该参数设为1或TRUE。 
常用的fopen的文件操作模式说明 
”r” - 以只读方式打开文件,从文件头开始读。 
”r+” - 以读写方式打开文件。 
”w” - 以写入方式打开文件,从文件头开始写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。 
”w+” - 以读写方式打开文件,从文件头开始读写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。 
”a” - 以写入方式打开,从文件末尾开始追加写。如果文件不存在则尝试创建。 
”a+” - 以读写方式打开,从文件末尾开始追加写写或者读。如果文件不存在则尝试创建。 
注意:在进行文件读写操作时,你一定要确保打开的文件具有相应的读写权限,否则fopen会报错。你可以使用@来抑制产生的错误,然后合理处理错误。 
2、在使用文件操作函数fopen打开文件后,需要通过对变量赋值,然后写到$fp指向的文件指针中去,在上述PHP文件写入操作教程实例中,我使用的是一行一行存储,即换行储存,主要通过\n作为换行分隔符。 
fwrite文件写入函数原型如下:

fwrite(fp,string,length)   

在这里你也可以使用文件写入函数fputs,其是fwrite的别名函数,功能与用法与fwrite一样。 
在文件写入函数fwrite中length是可选项,主要用来设定写入文件的最大字符数,如果设定了这个参数,fwrite会按设定的length,在指定文件中写入规定长度的字符。fwrite()返回写入文件的字符数,出现错误时则返回false。 
在文件写入操作完成后,需要关闭文件句柄,否则会占用系统资源等。可以使用fclose($fp)函数来完成这件事。文件关闭成功则返回true,否则返回false。

最新文章

  1. vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法
  2. Bootstarp: sub_menu 自定义改变nav样式
  3. 关于MySql全文索引
  4. Eclipse如何生成jar包
  5. VMware虚拟机中Hadoop服务的端口无法访问的问题
  6. Kubernetes Architecture
  7. 【转】Netty那点事(一)概述
  8. jquery 中多个存在依赖关系的ajax调用解决办法
  9. nginx配置ssl加密(单双向认证、部分https)
  10. 菜鸟玩云计算之十一:Hadoop 手动安装指南
  11. python 第三章 字符串-例1
  12. NET Framework 版本和依赖关系
  13. Spring源码情操陶冶-自定义节点的解析
  14. threejs立方体贴图产生边缘锯齿问题
  15. Java笔记(四)常用基础类
  16. 洛谷 P4568 [JLOI2011]飞行路线 解题报告
  17. Nginx配置直接php
  18. git恢复删除的分支及内容
  19. [转帖]awk 入门
  20. Restoring Numbers

热门文章

  1. Java|今天起,别再扯订阅和回调函数
  2. 【小白的CFD之旅】08 CFD速成之道
  3. oneuijs/You-Dont-Need-jQuery
  4. 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】
  5. 针对特定浏览器起作用的CSS: IE Chrome Firefox CSS Hack
  6. oracle一列中的数据有多个手机号码用逗号隔开,我如何分别取出来?
  7. JAVA final关键字,常量的定义
  8. 【原创】如何在Android中为TextView动态设置drawableLeft等
  9. linux中U盘umonut时出现“Device is busy”的解决方法
  10. 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档
  11. headless
  12. Spring Boot 集成swagger实例
  13. [jbdj]SpringMVC框架(1)快速入门
  14. [LeetCode] K Empty Slots K个空槽
  15. fastjson对象转为json字符串日期格式变为时间戳问题
  16. 20165316 技能学习心得与c语言学习
  17. openvpn push &quot;route
  18. SwipeBackLayout侧滑返回显示桌面
  19. Windows+IIS结合LVS+Keepalived是实现Linux负载均衡软件
  20. 20145327 《Java程序设计》第九周学习总结