PHP文件系统

我们会点鼠标右键删除文件、会control+c(或右键)复制、粘贴文件,会新建一些文件,检测这个文件是不是只读文件。

readfile读取文件

int readfile ( string $文件名)

功能:传入一个文件路径,输出一个文件。

<?php
   //linux类的读了方式
   readfile("/home/paul/test.txt");
   //windows类的读取方式
   readfile("c:\\boot.ini");
?>

file_get_contents打开文件

上面的是单纯打文件就直接输出了,有没有打开文件后,能够赋值给一个变量的操作方式呢。

fopen、fread、fclose操作读取文件

上面file_get_contents打开文件的方式简单、粗暴。下面的

resource fopen ( string $文件名, string 模式)

string fread ( resource $操作资源, int 读取长度)

bool fclose ( resource $操作资源 )

通过上面的函数我们来讲解资源类型的通常操作方式:

1.打开资源

2.使用相关函数进行操作

3.关闭资源

fopen函数 fopen函数的功能是打开文件,参数主要有两个:

1.文件打开的路径

2.打开文件的模式

返回类型是一个资源类型,我们第一次遇到了之前基础类型的时候讲到的资源类型。
资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。

fread函数 函数的功能的功能是读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。

fclose函数 fclose函数的功能是关闭资源。资源有打开就有关闭。

了解完函数,后两个函数比较简单。而fopen函数的模式到底是什么,fopen的模式有下面几个,我们来讲一下fopen的模式:

 

模式说明
r 只读方式打开,将文件指针指向文件头。
r+ 读写方式打开,将文件指针指向文件头。
w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建
a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建
x+

创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

其他注意事项:

模式说明
t windows下将\n转为\r\n
b 二进制打开模式


说明:

Windows 下提供了一个文本转换标记('t')可以透明地将 \n 转换为 \r\n。
与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。

PHP创建和修改文件

file_put_contents写入文件

 我们先来学习第一种写入文件的方式:

int file_put_contents ( string $文件路径, string $写入数据])

功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度。

fwrite配合fopen进行写入操作

总结:

  1. 不论有没有新建都会打开文件重新写入
  2. 原有的文件内容会被覆盖掉
  3. 文件不存在会创建

a模式和w模式的不同

<?php
   $filename = 'test.txt';
   $fp= fopen($filename, "a");
   $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望');
   echo  $len .'字节被写入了\n';
?>

打开网页执行这段代码,你会发现:每刷新一次,文件中就会多一段:读大学迷茫了,PHP中文网学PHP给你希望。

总结:

 

模式总结
x 每次写入会干掉原有文件的内容,文件不存在都会创建
a 每次写入都会向文件的尾端追加内容

PHP创建临时文件

而创建临时文件在我们平时的项目开发中也非常有用。创建临时文件的几个好处:

  • 文完后即删除
  • 不需要去维护这个文件的删除状态

resource tmpfile ( )

功能:创建一个临时文件,返回资源类型。关闭文件即被删除。

<?php
   //创建了一个临时文件
   $handle = tmpfile();

   //向里面写入了数据
   $numbytes = fwrite($handle, '写入临时文件');

   //关闭临时文件,文件即被删除
   fclose($handle);

   echo  '向临时文件中写入了'.$numbytes . '个字节';
?>

重命名文件

bool rename($旧名,$新名);

复制文件

复制文件,就相当于是克隆技术,将一个原来的东西再克隆成一个新的东西。两个长得一模一样。

bool copy(源文件,目标文件)

删除文件

删除文件就是将指定路径的一个文件删除,不过这个删除是直接删除。使用的是windows电脑,你在回收站看不到这个文件。

你只会发现,这个文件消失了。

bool unlink(指定路径的文件)

php检测文件属性函数

    bool file_exists ( $指定文件名或者文件路径)
    功能:文件是否存在。

    bool is_readable ( $指定文件名或者文件路径)
    功能:文件是否可读

    bool is_writeable ( $指定文件名或者文件路径)
    功能:文件是否可写

    bool is_executable ( $指定文件名或者文件路径)
    功能:文件是否可执行

    bool is_file ( $指定文件名或者文件路径)
    功能:是否是文件

    bool is_dir ( $指定文件名或者文件路径)
    功能:是否是目录

    void clearstatcache ( void )
    功能:清楚文件的状态缓存

filesize 检测文件的大小

文件的时间函数

 

函数功能说明
filectime 文件创建时间
filemtime 文件修改时间
fileatime 文件上次访问时间

php 目录处理函数

 
 

之前我们处理的全都是文件,那目录和文件夹怎么处理呢?

我们就来学习目录或者称为文件夹的处理相关函数。

处理文件夹的基本思想如下:

  1. 读取某个路径的时候判断是否是文件夹
  2. 是文件夹的话,打开指定文件夹,返回文件目录的资源变量
  3. 使用readdir读取一次目录中的文件,目录指针向后偏移一次
  4. 使用readdir读取到最后,没有可读的文件返回false
  5. 关闭文件目录

我们来学习一比常用函数:

函数名功能
opendir 打开文件夹,返回操作资源
readdir 读取文件夹资源
is_dir 判断是否是文件夹
closedir 关闭文件夹操作资源
filetype

显示是文件夹还是文件,文件显示file,文件夹显示dir

posted @ 2018-08-07 15:28  飞鱼0725  阅读(131)  评论(0编辑  收藏  举报