1.文件的打开和关闭(读文件中的内容,向文件中写内容)
            读取文件中的内容
                file_get_contents()     //php5以上

<?php
$filename="./test.txt";

//读出文件的内容
echo file_get_contents($filename);
echo "<br>";

//向文件中写内容,返回写入到文件内数据的字节数
echo file_put_contents("./one.txt","123");
echo "<br>";
?>

file();
                readfiel();
                    不足:全部读取,不能读取指定的区域
                读取部分字符:
                    fopen(URL,mode)
                        mode:
                        r   以只读的模式打开文件
                        r+    比读的方式多了个写
                        w   以只写的方式打开,如果文件不存在,则创建这个文件,并写入数据,如果文件存在,会将源文件中的数据清除,再写入
                        w+  比写的方式多了个读
                        a   以只写的方式打开,如果文件不存在,则创建这个文件,并写入文件,如果原文件有内容,但是不清除文件内容(追加)
                        a+   比写的方式多了个读
                        b   以二进制模式打开文件(图片,电影)
                        t   以文本模式打开文件
                        fread()    //读取指定长度的字符
                        fgetc()    //一次从文件中读取一个字符
                        fgets()    //一次从文件中读取一行字符
                            feof($file);    如果读取文件出错,或到文件结束,则返回真
            写入文件内容
            file_put_contents()         //php5以上
                如果文件不存在,则创建并写入内容
                如果文件存在,则删除文件原来的内容,重新写入
                不足:不能以追加的方式写
            fopen()
                fwrite()  别名fputs()
                fwrite(文件的资源(fopen返回的),写的内容)

<?php
//如果打开成功则返回资源,如果失败返回false
$file=fopen("./test.txt","r");

//fread()从文件中读取指定长度的字符
echo fread($file,5)."<br>";

//从文件中每次读取一个字符
echo fgetc($file)."<br>";

//从文件中每次读取一行字符

echo fgets($file);
//关闭文件资源
fclose($file);

//读取远程文件
$file=fopen("http://www.163.com", "r");

$str="";

//feof();读取文件出错或文件内容读完,返回真
while(!feof($file)){
    $str.=fread($file,1024);
}

echo $str;
//关闭文件
fclose($file);

$file=fopen("./test.txt","w");
//向文件中写内容
fwrite($file,"wwwwwww");

fclose($file);

//以追加的方式写入
$file=fopen("./test.txt","a");

fwrite($file,"aaaaaaaaa");
fclose($file);
?>

本地文件
                ./test.txt
                C:/appserv/www/index.php
            远程文件
                http://www.baidu.com等

2.文件内部指针
            ftell();   返回文件指针读/写的位置
            int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )   在文件指针中定位
                whence values are:
                    •SEEK_SET - 设定位置等于 offset 字节。
                    •SEEK_CUR - 设定位置为当前位置加上 offset。
                    •SEEK_END - 设定位置为文件尾加上 offset。

rewind();  文件指针回到文件开始的位置

<?php
$file=fopen("./test.txt","r");

//ftell();返回文件指针读写的位置
echo ftell($file)."<br>";

echo fread($file,10)."<br>";
echo ftell($file)."<br>";

//fseek(); 在文件指针中定位
fseek($file,-20,SEEK_END);
echo ftell($file)."<br>";
echo fread($file, 20)."<br>";

//返回文件头部
rewind($file);
echo ftell($file);
fclose($file);
?>

用文件处理写的小小留言板

<?php$mess="./file.txt";if(isset($_POST["sub"])){    $strmess=$_POST["name"].'<l>'.$_POST["til"].'<l>'.$_POST["con"].'<l>'.time().'<n>';    write($mess,$strmess);    if(file_exists($mess)){        $con=read($mess);        //rtrim()去掉右边的字符  为了分隔,把最后一个<n>去掉            $con=rtrim($con,"<n>");        //explode()以<n>分隔字符串        $rows=explode("<n>", $con);        foreach ($rows as $row) {            //list()分割后的字符串赋值给相应的变量            list($username,$title,$content,$time)=explode("<l>", $row);            echo '<p>'.$username.'在'.date("Y-m-d H:i:s",$time).'说';            echo $title."  ";            echo $content.'</p>';        }        }}

//从文件中读数据function read($fileName){    //    $file=fopen($fileName, "r");    //flock(,LOCK_SH)给文件加锁(读出数据)    if(flock($file, LOCK_SH)){        //读出文件的全部数据        $con=fread($file,filesize($fileName));        //释放锁定        flock($file, LOCK_UN);    }    fclose($file);    return $con;}

//向文件中写数据function write($fileName,$mess){    //追加写    $file=fopen($fileName,"a");    //flock()给文件加锁(写入数据)    if(flock($file,LOCK_EX)){        fwrite($file, $mess);        //释放锁定        flock($file,LOCK_UN);    }    fclose($file);}

?><form action="8.php" method="post">    Name:<input type="text" name="name"><br>    Title:<input type="text" name="til"><br>    Body:<textarea name="con"></textarea><br>    <input type="submit" name="sub" value="提交"><br></form>

PHP文件系统处理(二)的更多相关文章

  1. Node.js之操作文件系统(二)

    Node.js之操作文件系统(二) 1.创建与读取目录 1.1 创建目录 在fs模块中,可以使用mkdir方法创建目录,该方法的使用方法如下: fs.mkdir(path,[mode],callbca ...

  2. linux文件系统 - 初始化(二)

    加载initrd(上) 一.目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd. initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可 ...

  3. Linux磁盘及文件系统(二)Linux下磁盘命名和分区

    在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一.磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推. ...

  4. Hadoop概念学习系列之常见的分布式文件系统(二十六)

    常见的分布式文件系统有,GFS.HDFS.Lustre .Ceph .GridFS .mogileFS.TFS.FastDFS等.各自适用于不同的领域.它们都不是系统级的分布式文件系统,而是应用级的分 ...

  5. linux源代码阅读笔记 linux文件系统(二)

    上一篇文章说到linux文件系统中分为超级块,inode块,block块.inode块给出文件的权限,修改时间,大小等信息. 但是实际上,文件的数据是存储在block块中的.而inode块中给出了存储 ...

  6. EXT2/EXT3文件系统(二)

         整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ 接EXT2/EXT3文件系统(一):   2.3 Supe ...

  7. /proc文件系统(二):/proc/&lt;pid&gt;/stat

    0. 前言 /proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间. 它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某 ...

  8. BlueStore-先进的用户态文件系统《二》-BlueFS

    https://zhuanlan.zhihu.com/p/46362124 简介 上一篇文章中,介绍了BlueStore的诞生背景.逻辑架构以及设计思想,提到了在BlueStore中元数据都是存放在R ...

  9. CentOS7搭建FastDFS V5.11分布式文件系统(二)

    1.CentOS7 FastDFS搭建 前面已下载好了要用到的工具集,下面就可以开始安装了: 如果安装过程中出现问题,可以下载我提供的,当前测试可以通过的工具包: 点这里点这里 1.1 安装libfa ...

  10. Yocto开发笔记之《根文件系统裁剪》(QQ交流群:519230208)

    开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...

随机推荐

  1. SqlServer--代码创建约束

    约束-保证数据完整性先用设计器创建约束,再用代码创建约束.数据库约束是为了保证数据的完整性(正确性)而实现的一套机制非空约束 (选择复选框)not null主键约束(PK)primary key co ...

  2. C语言程序设计50例(二)(经典收藏)

    [程序11]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1 ...

  3. Json序列反序列类型处理帮助类

    Json序列反序列类型处理帮助类. JSON反序列化 JSON序列化 将Json序列化的时间由/Date(1294499956278+0800)转为字符串 将时间字符串转为Json时间 using S ...

  4. (原)ubuntu14手动安装matplotlib1.5

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5681059.html 参考网址: http://matplotlib.org/users/instal ...

  5. Android如何实现定位获取

    一:GPS定位: (1).要实用Adnroid平台的GPS设备,首先需要添加上权限,所以需要添加如下权限: uses-permission android:name= android.permissi ...

  6. 201521123079《java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...

  7. 怎样查看MYSQL数据库的端口号

    show variables like '%port%';

  8. Spring Security Oauth2 示例

    所有示例的依赖如下(均是SpringBoot项目) pom.xml <dependencies> <dependency> <groupId>org.springf ...

  9. Java基础知识➣面向对象(八)

    概述 Java和C#都是面向对象语言,面向对象编程是目前高级语言习惯的编程模式,与C++编写过程编程而言,面向对象使用起来高效.灵活:面向对象的三个特征:封装.继承和多态. Java面向对象 1.类封 ...

  10. IOP知识点(1)

    1  实例明细url显示 2  增加了logo图片可以编辑 1  实例明细url显示 是在iop中写死的配置 2  增加了logo图片可以编辑 仿照 admin里  服务工厂-服务定义中的内容 (1) ...