基本知识:

PHP文件系统是基于Unix系统的
文件数据基本类型:二进制数据、文本数据
文件输入流:数据从源文件到内存的流动
文件输出流:数据从内存保存到文件的流动

文件操作函数:

》》》读《《《

==>获取文件流
fopen(文件相对路径/绝对路径,[文件打开模式]);    成功返回文件流,否则返回false
    [文件打开模式]六种常用打开方式:

r    只读方式打开    指针在文件头
    r+    读写方式打开    指针在文件头

a    写入方式打开[追加]    指针在文件尾
    a+    读写方式打开[追加]    指针在文件尾

w    写入方式打开[创建或清空]    指针在文件头
    w+    读写方式打开[创建或清空]    指针在文件头

b     只限于windows,二进制模式,附加在其他模式的上,例如”xb”
    t     只限于windows,附加在其他模式上,,将所有行的结束符转换成\r\n

==>根据文件流获取文件信息
fstat(文件流);    返回文件信息
返回的数组部分信息:
['size']:文件大小
['atime']:最后访问时间   返回的是Unix时间戳 转换date('Y-m-d H:i:s',$fileStream['mtime']);
['mtime']:最后修改时间
['ctime']:最后改变时间(相当于创建时间,只要所有者或用户组没有变化)

==>关闭文件
fclose($fileStream);

==>根据路径获取文件信息(方法二):可以不用打开文件就可以获取文件信息
filesize($filePath);
fileatime($filePath);
filemtime($filePath);
filectime($filePath);

==>判断文件是否存在
file_exists($filePath);

==>读取文件内容(方法一)
$fileData = fread($fileStream,filesize($filePath));
注意:
文本文件读取到网页上显示时,由于换行符不被解释,文本不换行显示,
解决办法:将\r\n替换为<br/>[str_replace('\r\n','<br/>',$fileData);]

==>读取文件内容(方法二)
file_get_contents($filePath); 将整个文件读取到一个字符串(内部自动关闭文件流)

==>读取文件内容(方法三) 循环读取,用于读取大文件
循环读取指定字节大小的文件数据
feof($fileStream):判断文件指针是否在文件未尾,是返回true,否则返回false
while(!feof($fileStream)){
    $fileData = fread($fileStream,1024);
    echo $fileData;
}

应用扩展:
编写配置文本文件 db.ini
内容:
    host=172.0.0.1
    uid=root
    pwd=1314
    dbname=test
parse_ini_file('db.ini'); 根据‘=’分隔后的一个数组

======================================

fopen('htttp://demo.php/','r');
可以读取远程文件,但只限于只读模式
成功返回文件流,否则返回false

fread($handle,$len);            读取文件的len个字符长度可
stream_get_contents($handle);     读取文件所有内容

fwrite(fileStream,rContent,[length])
Note: 在区分二进制文件和文本文件的系统上(如 Windows) 打开文件时,fopen() 函数的 mode 参数要加上 'b'。
成功返回写入的字符数,出现错误时则返回 FALSE 。

fclose(fileStream)

例:
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize ($filename));
fclose($handle);

ftruncate($hanle,$len); 截取文件内容

》》》写《《《

==>写入文件(方法一)
$fileStream = fopen(filePath,"a+"); 给文件末尾追加内容用a+
fwrite($fileStream,"要写入的内容");  返回写入的字符数,出现错误时则返回 FALSE 。

==>写入文件(方法二)
file_put_contents($filePath,"要写入的内容",FILE_APPEND);
内部会自动关闭文件流,FILE_APPEND以追加方式添加,如果没有则默认是对内容清空再写入
如果是循环写入,效率没有第一种高

》》》拷贝《《《
copy(源路径,结果路径);
注意:中文的编码转换 iconv('utf-8','gb2312',$filePath);

PHP文件操作 读取与写入的更多相关文章

  1. Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

    1.JDK API中RandomAccessFile类的描述 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引 ...

  2. C#的XML文件的读取与写入

    在设计程序的时候,对于一些变化性较强的数据,可以保存在XML文件中,以方便用户修改.尤其是对于一些软硬件的配置文件,很多都选择了用XML文件来存取.XML文件简单易用,而且可以在任何应用程序中读写数据 ...

  3. c# txt文件的读取和写入

    我们在工程实践中经常要处理传感器采集的数据,有时候要把这些数据记录下来,有时候也需要把记录下来的数据读取到项目中.接下来我们用C#演示如何对txt文件进行读写操作.我们要用到StreamReader  ...

  4. Properties类对于文件的读取和写入

    Properties类表示一个持久的属性集.Properties可保存在流中或从流中加载.Properties对象只能加载以 .Properties 为后缀的文件(文件我创建在src下). 开始时文件 ...

  5. c++学习笔记—c++对txt文件的读取与写入

    一.文件的输入输出 头文件fstream定义了三个类型支持文件IO:ifstream从给定文件读取数据.ofstream向一个给定文件写入数据.fstream读写给定数据.这些类型与cin和cout的 ...

  6. POI Excel文件的读取与写入

    1. 创建目录 if(!(new File(path).isDirectory())){ new File(path).mkdirs();} 2. 读取Excel文件,并进行写入操作 Workbook ...

  7. Python 文件的读取与写入

    1. 读取文件,文件中没有中文 备注 : 文件名 : EnglishFile.txt 文件位置 : 保存在所写的.py文件的同级目录,附上截图,便于参考 备注 : 文件位置可以改变,只需要把文件路径传 ...

  8. java中文件的读取和写入

    //首先要顶一个file文件用来存放要读取的文件 File f=new File("c:/test/aa.txt"); //在实例化一个输入流,并把文件对象传到里面 FileInp ...

  9. java 文件操作 读取字节级数据(读取)

    package com.swust; import java.io.*; /* * 功能:按照双精度浮点型.整型.布尔型.字符型.和字符串型的顺序从名为sample.dat文件读取数据 * 分析:用F ...

随机推荐

  1. [iOS dispatch_once创建单例]

    自苹果引入了Grand Central Dispatch (GCD)(Mac OS 10.6和iOS4.0)后,创建单例又有了新的方法,那就是使用dispatch_once函数,当然,随着演进的进行, ...

  2. [IOS NSUserDefaults]的使用:登陆后不再显示登录界面。

    之前搜了好多地方都没找到实现“登陆后不再显示登录界面,而默认自动登录”的方法. 待我发现有种存储方式叫NSUserDefaults的时候,立马又感觉新技能get了. 简介: NSUserDefault ...

  3. ASP.NET MVC4 执行流程

    MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...

  4. 循序渐进 Jprofiler

    一 Jprofiler 1 什么是Jprofiler JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程式.它把CPU.线程和内存的剖析组合在一个 ...

  5. 使用chrome查看页面元素的css样式

    使用chrome查看页面元素的css样式 我们在写页面的时候,可能总是不知道怎么回事,就发现某个元素出现了问题,但是不知道为什么会这样,这时候,就需要使用强大的chrome了!!! 举例说明: 1. ...

  6. JQuery------$.getJSON()方法的使用

    html(../Home/Index.cshtml) <body> <button class="Btn">按钮</button> </b ...

  7. HTTP协议发展脉络

    1 发展脉络 1.1 1991 HTTP/0.9 建立TCP连接.客户端发送请求(只有GET命令).服务端返回请求(只能返回html格式字符串)后就关闭TCP连接 1.2 1996.5 HTTP/1. ...

  8. Construct Bounding Sphere

    点集的包围球 http://en.wikipedia.org/wiki/Bounding_sphere http://blogs.agi.com/insight3d/index.php/2008/02 ...

  9. Spot光照资料

    http://forums.autodesk.com/t5/FBX-SDK/EmissiveFactor-AmbientFactor-DiffuseFactor/td-p/4230572http:// ...

  10. vertical-align0 垂直对齐- 图片 兼容个浏览器

    效果:  代码: <html> <head> <style type="text/css"> img.top {vertical-align:t ...