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

文件处理: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. svn忽略某个文件提交

    svn忽略配置文件提交:TortoiseSVN->Unversion and add to ignore_list (config.php(recursiverly)) 正如官方指南所言:Tor ...

  2. Dom4j操作XML文件

    1. 创建并写入XML public static void writeXML(String filename){ try { Document document = DocumentHelper.c ...

  3. php实现设计模式之 访问者模式

    <?php /** * 访问者模式 * 封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作. * 行为类模式 */ /** 抽象访问者:抽象类或 ...

  4. S1java基础学习笔记

    第一章  Java基础 程序目标:减轻现实生活中一类人的工作量,提高工作效率. 学员最终可以书写系统: 超市管理系统,POS机系统等 入库单 销售单 01.课程重点 五大重点: 01.分支(选择)结构 ...

  5. HTML5 随机弹跳的小球

    查看效果:http://keleyi.com/a/bjad/tc1y11dy.htm Chrome效果图: 火狐效果图:推荐:http://hovertree.com/texiao/css3/18/ ...

  6. webpack继续

    序言:继续上一篇<webpack初入> 1.上一篇配置完成后最终的命令是:webpack,如果更改package.json中的一个配置如下: 换为 此时最终的命令:npm start等同于 ...

  7. C# 在執行程式目錄下產生文件夾

    //產生一個Log文件夾string appPath = Application.StartupPath; if (!Directory.Exists(appPath + "/log&quo ...

  8. 修改ArcSDE的最大连接数

    我们大体都知道ArcSDE的连接数有 48 的限制,很多人也知道这个参数可以修改,并且每种操作系统能支持的最大连接数是不同的. 如果应用报错:超出系统最大连接数该如何处理? 两种解决办法: 第一,首先 ...

  9. ArcGIS中的坐标系统定义与投影转换【转】

    ArcGIS中的坐标系统定义与投影转换 坐标系统是GIS数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统 ...

  10. Linux入侵检测常用命令

    find / -mtime 0 #0代表目前时间,表示从现在开始到24小时以前,有改动过内容的文件全都会被列出来.如果是3天前24小时内,则使用find / -mtime 3 find /etc -n ...