PHP对文件数据的存储和检索
@(主要是对文件的操作)
文件处理:php操作文件主要是写入和读取这两种。执行的步骤都是一样的。
1.打开这个文件。如果打不开就先创建它。
2.将数据写入这个文件,或者将数据读出这个文件。
3.关闭文件。
打开文件
打开文件用open()函数
$fp = fopen("$DOCUMENT_ROOT/../orders/orderes.txt", "w")
open()函数一共接受4个参数。通常需要两个函数,第一个是文件目录,第二个是文件模式,即是读还是写。一般建议在文件文件模式上标配’b’,这个是用二进制格式,方便再不同平台之间移植。
另外两个参数都是可选的,第3个参数值是true或者false,可以在include_path里面搜索(这个是在php配置中设置的),第4参数是用来打开FTP和FTTP文件的。
文件打不开的时候
一般考虑是不是文件权限的问题,可以检查一个文件权限。
可以自己给出错误提示:
@$fp = fopen("$DOCUMENT_ROOT/../orders/orderes.txt", "ab");
if (!$fp){
echo "<p><strong> Your order could not be processed at this time. Please try again later.<strong><p>";
exit;
}
写文件
写文件用函数fwrite()或者fputs(),第一个函数的格式是:
fwrite($fp, $outputstring);
第一个是打开的文件指引,第二个是要写进去的字符串。还有一个可选参数length是写入的最大字符数。
写入的文件格式:
要写入文件的字符串表符和换行符来表示分割和换行操作
关闭文件
关闭文件只需要一个fclose()函数。
fclose($fp);
如果被成功关闭则返回true, 否则返回false.
读文件
用fopen()函数打开文件之后就需要读取,读取的方式有很多种。
只读的模式打开文件: fopen()
$fp = fopen("order.text", "rb");
r是只读模式。
知道何时读完文件: feof()
feof($fp)函数只接收文件指针作为参数,如果文件指针指向了文件末尾,则返回true,否则返回false。feof表示file enf of file
每次读取一行数据:fgets(), fgetss(), fgetcsv()
fgets()函数每次从文件中读取一行内容,每行是按照换行符或者文件结束符EOF,或者函数限制最大长度减去1B.
$order = fgets($fp, 999);
fgetss()函数的意思和参数同fgets()一样的,但是这个函数会自动过滤html和php的标记。
fgetcsv()函数是进一步的加强,可以选择一个界定符号,默认是按照fgets()中的来决定哪一个是一行,但是可以决定比如限定制表符处结束为一行。
$order = fgetcsv($fp, 100, '\t');
读取整个文件:readfile(), fpassthru(), file()
readfile()打开文件,并且将文件内容输出到标准输出中,然后再关闭这个文件
readfile("orsers.txt");
fpassthru()的使用必须先用fopen()把文件打开,然后这个函数的作用就跟readfile()一样了,把文件输出到标准输出,然后关闭文件。下面的两行代码等价与readfile()函数中的一行:
$fp = fopen('order.txt', 'rb');
fpassthru($fp);
file()会把整个文件发送到一个数组中:
$filearray = file("order.txt");
这行代码将整个文件读入到一个名文$filearray的数组中。
读取一个字符:fgetc()
就是从文件中一次读取一个字符,只接收一个参数。
$char = fgets($fp);
读取任意长度:fread()
就是从文件中读取任意长度的字节。
$char = fread($fp, 999);
其他一些有用的函数
file_exists()检查一个文件是否存在。
filesize()检查一个文件的大小。
unlink()删除一个文件。
PHP对文件数据的存储和检索的更多相关文章
- 从零开始PHP攻略(3)——数据的存储与检索
要点目录: I.保存数据 II.打开文件 III.创建并写入文件 IV.关闭文件 V.读文件 VI.给文件加锁 VII.删除文件 VIII.其他有用的文件操作函数 IX.数据库管理系统 1.保存数 ...
- PHP学习(3)——数据的存储与检索
要点目录: I.保存数据 II.打开文件 III.创建并写入文件 IV.关闭文件 V.读文件 VI.给文件加锁 VII.删除文件 VIII.其他有用的文件操作函数 IX.数据库管理系统 1.保存数 ...
- IOS数据存储之文件沙盒存储
前言: 之前学习了数据存储的NSUserDefaults,归档和解档,对于项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了.文件沙盒存储主要存储非机密数据,大的数据. ...
- iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)
本地数据的存储(使用NSCoder将对象保存到.plist文件) 下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象). 功能如下: ...
- Swift - .plist文件数据的读取和存储
每次在Xcode中新建一个iOS项目后,都会自己产生一个.plist文件,里面记录项目的一些配置信息.我们也可以自己创建.plist文件来进行数据的存储和读取. .plist文件其实就是一个XML格式 ...
- [Xcode 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何修改数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(12)数据持久化存储框架CoreData的使用:查找CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何查找数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(11)数据持久化存储框架CoreData的使用:创建CoreData实体并插入数据
目录:[Swift]Xcode实际操作 本文将演示[CoreData]数据持久化存储框架的使用. 点击[Create a new Xcode project]创建一个新的项目 ->[Single ...
随机推荐
- 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing
[源码下载] 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing 作者:webabcd 介绍背水一 ...
- PHP JSON数组与对象的理解
在PHP后端和客户端数据交互的过程中,JSON数据中有时格式不定,一会儿是数组,一会儿是对象,弄得客户端开发人员要崩溃的感觉. 因此,前后端相关人员先对PHP的json_encode函数原理有必要的了 ...
- 第 31 章 项目实战-PC端固定布局[2]
学习要点: 1.大纲算法 2.section和div 3.结构分析 主讲教师:李炎恢 本章主要开始使用学习用HTML5和CSS3来构建Web页面,第一个项目采用PC端 固定布局来实现. 一.大纲算法 ...
- springmvc添加mock json的支持
在springmvc中 添加对服务器classPath下的json文件解析之后返回的mock功能: import java.io.FileNotFoundException; import java. ...
- js监听input是第几次click
我很多问题啊 真的是,然后我有问题就博问啊 ,博问的东西我还是放到博客里面来吧 因为我不怎么看博问 博客的话经常看, 恩 都是一开始我不懂 然后园友来解答的 真的很感谢这些园友 不多说 上代码吧 其实 ...
- jqGrid使用setColProp方法动态改变列属性
在使用jqGrid插件时,有时我们需要动态改变列的属性,可使用setColProp方法,用法如下 jQuery(”#grid_id”).setColProp('colname',{editoption ...
- 【单页应用】view与model相关梳理
前情回顾 根据之前的学习,我们形成了一个view与一个messageCenterview这块来说又内建了一套mvc的东西,我们这里来理一下首先View一层由三部分组成:① view② dataAdpt ...
- 另类的SQL注入方法
前言:相比基于查询的SQL注入,使用insert.update和delete进行SQL注入显得略显另类 参考自:http://www.exploit-db.com/wp-content/themes/ ...
- 关于SharePoint 2013的工作流(一)
从去年开始,一直和SharePoint 2013工作流打交道.自己瞎摸索,以实现功能为目的.直到如今也不知道走的路是否正确. 一开始用WF4发现整个都不一样了,用的xaml无法写后端代码.Google ...
- OpenGL渲染流程
一.什么是openGL OpenGL被定义为“图形硬件的一种软件接口”.从本质上说,它是一个3D图形和模型库,具有高度的可移植性,具有非常快的速度. 二.管线 管线这个术语描述了opengl渲染的整个 ...