@(主要是对文件的操作)

文件处理: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对文件数据的存储和检索的更多相关文章

  1. 从零开始PHP攻略(3)——数据的存储与检索

    要点目录: I.保存数据 II.打开文件   III.创建并写入文件 IV.关闭文件 V.读文件 VI.给文件加锁 VII.删除文件 VIII.其他有用的文件操作函数 IX.数据库管理系统 1.保存数 ...

  2. PHP学习(3)——数据的存储与检索

    要点目录: I.保存数据 II.打开文件   III.创建并写入文件 IV.关闭文件 V.读文件 VI.给文件加锁 VII.删除文件 VIII.其他有用的文件操作函数 IX.数据库管理系统 1.保存数 ...

  3. IOS数据存储之文件沙盒存储

    前言: 之前学习了数据存储的NSUserDefaults,归档和解档,对于项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了.文件沙盒存储主要存储非机密数据,大的数据. ...

  4. iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)

    本地数据的存储(使用NSCoder将对象保存到.plist文件)   下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象).   功能如下: ...

  5. Swift - .plist文件数据的读取和存储

    每次在Xcode中新建一个iOS项目后,都会自己产生一个.plist文件,里面记录项目的一些配置信息.我们也可以自己创建.plist文件来进行数据的存储和读取. .plist文件其实就是一个XML格式 ...

  6. [Xcode 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  7. [Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何修改数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  8. [Xcode 实际操作]七、文件与数据-(12)数据持久化存储框架CoreData的使用:查找CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何查找数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  9. [Xcode 实际操作]七、文件与数据-(11)数据持久化存储框架CoreData的使用:创建CoreData实体并插入数据

    目录:[Swift]Xcode实际操作 本文将演示[CoreData]数据持久化存储框架的使用. 点击[Create a new Xcode project]创建一个新的项目 ->[Single ...

随机推荐

  1. struts2中错误There is no Action mapped for namespace [/] and action name [] associated with context path

    1 There is no Action mapped for namespace [/] and action name [] associated with context path [/Stru ...

  2. POJ 2115 C Looooops扩展欧几里得

    题意不难理解,看了后就能得出下列式子: (A+C*x-B)mod(2^k)=0 即(C*x)mod(2^k)=(B-A)mod(2^k) 利用模线性方程(线性同余方程)即可求解 模板直达车 #incl ...

  3. 用R语言的quantreg包进行分位数回归

    什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...

  4. 【英语学习】2016.09.11 Culture Insider: Teacher's Day in ancient China

      Culture Insider: Teacher's Day in ancient China 2016-09-10 CHINADAILY Today is the 32nd Chinese Te ...

  5. 十一个行为模式之状态模式(State Pattern)

    定义: 当一个对象有多个状态,并且在每个状态下有不同的行为,可以使用状态模式来在其内部改变状态时改变其行为,而客户端不会察觉状态的改变,仍使用同样的方法或接口与对象进行交互. 结构图: Context ...

  6. 《对象及DOM知识点及其应用1》

    1.图片间的来回切换用if{}else{}; <超链接方式的切换图片(常用)>如:<a href="../images1/1-small.jpg" id=&quo ...

  7. 玩转 H5 下拉上滑动效果

    在APP中我们经常会在页面下拉时看到一些动效,例如下拉图片跟随放大.下拉刷新出现loading动画等,这个交互细节在各个主流APP以及手机原生系统中随处可见,能为APP增添个性亮点. 一.背景 在我们 ...

  8. .NET程序员走向高端必读书单汇总

    .NET程序员走向高端必读书单汇总 一.知识树 1. 基本能力 1.1 数学 1.2 英语 1.3 语言表达 2. 计算机组织与体系结构 3. 算法与数据结构 4. 操作系统 5. 计算机网络 6. ...

  9. AntiModerate – 渐进式图片加载的 JavaScript 库

    AntiModerate 是一个渐进式图片加载的 JavaScript 库.我们多数看到的图片显示模式,都是从上到下逐渐显示的,这是“标准式”图像:而有的图片是先出现一个很低分辨率的图像轮廓,类似加了 ...

  10. [deviceone开发]-do_ImageView实现正圆的示例

    一.简介 我们经常需要用一个正圆形状的图片来设置头像,在do平台这个比较容易,就是通过设置圆角来实现,但是有几个小技巧需要解释一下 主要组件:do_ImageView 二.效果图 三.相关下载 htt ...