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 ...
随机推荐
- [修正] Berlin Firemonkey Windows 控件左方显示虚线问题
说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Berlin Firemonkey 修正方法: 请将源码 FMX.Platform.Win.pas 复制到自己的工程目录里,再进行修改 ...
- 修改nginx版本名称伪装任意web server
如何修改nginx默认的名称,可以稍微的伪装一下,也可以装x 一般来说修改3个位置,一个是nginx.h.另一个是ngx_http_header_filter_module.c.还有一个ngx_htt ...
- Class.forName("com.mysql.jdbc.Driver") ;
try { Class.forName("com.mysql.jdbc.Driver") ; } catch(ClassNotFoundException e) { System. ...
- Lind.DDD.Repositories.Mongo层介绍
回到目录 之前已经发生了 大叔之前讲过被仓储化了的Mongodb,而在大叔开发了Lind.DDD之后,决定把这个东西再搬到本框架的仓储层来,这也是大势所趋的,毕竟mongodb是最像关系数据库的NoS ...
- java web学习总结(十五) -------------------JSP基础语法
任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...
- Javascript:Javascript数据类型详解
要成为一个优秀的前端工程师,系统的学习Javascript,有夯实的Javascript基础,以及对语言本身的深刻的理解,是基本功.从Javascript数据类型开始,我将对Javascript知识体 ...
- [TypeScript] 建立与使用AMD Library
[TypeScript] 建立与使用AMD Library 前言 使用Visual Studio开发TypeScript项目时,开发人员可以将可重用的程序代码,封装为AMD Library来提供其他开 ...
- Idea开发环境中搭建Maven并且使用Maven打包部署程序
1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...
- CSS Hack解决浏览器IE部分属性兼容性问题
1.Css Hack 不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持.解析不一样,导致在不同浏览器的环境中呈现出不 ...
- jQuery Mapael – 呈现动态的矢量地图
jQuery Mapael 是基于 Raphael.js 的一个 jQuery 插件,可以显示动态矢量地图.例如,使用 Mapael 可以显示国家能够点击的世界地图.此外,你可以用圈,方形或者图片来标 ...