操作文件的相关函数

Original 2018-11-29 10:08:13 226
abstract:文件信息相关函数:* filetype($file) 获取文件类型 * filesize($file) 获取文件大小的字节数 * filectime($file) 获取文件创建的时间 * filemtime($file) 获取文件修改的时间 * fileatime($file) 获取文件最后访问的时间 * is_readable($file)

文件信息相关函数:

* filetype($file) 获取文件类型 * filesize($file) 获取文件大小的字节数

* filectime($file) 获取文件创建的时间 * filemtime($file) 获取文件修改的时间

* fileatime($file) 获取文件最后访问的时间 * is_readable($file) 获取文件可读性

* is_writable($file) 获取文件可写性 * is_executable($file) 获取文件可执行性 * file_exists($file) 文件是否存在

文件路径相关函数:

* pathinfo($file) 返回文件的路径信息

* pathinfo($file,PATHINFO_DIRNAME) 获取文件的目录部分 * dirname($file) 获取文件的目录部分 * pathinfo($file,PATHINFO_BASENAME) 获取文件名(带后缀) * basename($file) 获取文件名(带后缀)

* pathinfo($file,PATHINFO_FILENAME) 获取文件名(没有后缀) * pathinfo($file,PATHINFO_EXTENSION) 获取文件后缀

文件操作相关函数:

* touch ( $file [, $time , $atime]) 设定文件的访问和修改时间 如果文件不存在,则会被创建

* unlink ( $file [, $context ] ) 删除文件

* rename($oldname,$newname) 重命名一个文件或目录 或 把文件剪切到其他文件夹里面

* copy($from,$to) 将一个文件内容拷贝到第二个文件里面 拷贝网络图片 网站网页 。。。不仅可以拷贝本地的还可以拷贝远程 网络上的

文件内容相关函数:

* 步骤:打开 操作 关闭

* fopen($filename,mode) 打开文件

* mode 可选值: rb rb+ wb wb+ ab ab+
b 二进制文件
r 只读。在文件的开头开始。
r+ 读/写。在文件的开头开始。
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

* fread($file,filesize($filename)) 读取文件内容 * ftell($file) 获取文件指针当前所在位置 指针相当于鼠标的光标

* rewind($file) 将指针调回到开头位置 * fclose($file) 关闭文件 关闭后,不能读取 写入

文件写入相关函数:

* fwrite($file,'string') || fputs($file,'string') 向文件中写入内容 成功返回添加的字符数量 一个中文是三个字节 * PHP_EOL 换行

文件读取其他函数:

* fgetc($file) 从文件中获取一个字符 * fgets($file) 从文件中获取一行字符 * fgetss($file) 从文件中获取一行字符并且过滤到 HTML 标识

* feof($file) 测试文件指针是否到了文件结束的位置

* ftruncate($file,int $size) 将文件截断到给定的长度 文件内超出长度部门直接删掉

CSV格式文件相关函数:

* csv 逗号分隔值文件格式

* fgetcsv($file [,$length [,$delimiter [,$enclosure [,$escape ]]]]) 从文件指针中读入一行并解析 CSV 字段 默认字符是 逗号

* fputcsv($file,$data_arr [,$delimiter [,$enclosure ]]) 将行格式化为 CSV 并写入文件指针

文件内容相关其他函数:

* file_get_contents($filename) 将整个文件读入一个字符串读取文件,不需打开文件直接读取内容即可 ^不能过滤标签 ^可以获取代码 csv 文件 图片(需要声明头部类型)

file_get_contents.png

* file_put_contents($filename,$data) 将一个字符串写入文件 $data 类型可以是 string,array 或者是 stream 资源

是清空内容之后在填入内容;如果文件不存在,则先创建文件在填写内容。如果不想清空 先获取所有内容然后拼接一起file_put_contents.png

#获取文件信息 路径等函数 date_default_timezone_set('Asia/Shanghai'); $file = 'test.text'; $dir = 'test'; echo '文件类型:'.filetype($file).'
'; echo '文件夹类型:'.filetype($dir).'
'; echo '文件大小:'.filesize($file).'
'; echo '文件夹大小:'.filesize($dir).'
'; echo '文件创建的时间:'.date('Y-m-d H:i:s',filectime($file)).'
'; echo '文件修改的时间:'.date('Y-m-d H:i:s',filemtime($file)).'
'; echo '文件最后访问的时间:'.date('Y-m-d H:i:s',fileatime($file)).'
'; echo '文件的可读性:'.is_readable($file).'
'; echo '文件的可读性:'.var_export(is_readable('te.text'),true).'
'; echo '文件夹的可读性:'.is_readable($dir).'
'; echo '文件的可写性:'.is_writable($file).'
'; echo '文件是否可执行性:'.is_executable($file).'
'; echo '
'.var_export(pathinfo($file),true).'
'; echo '
'.var_export(pathinfo($dir),true).'
'; echo '文件目录部分: '.pathinfo($file,PATHINFO_DIRNAME).'
'; echo '文件目录部分: '.dirname($file).'
'; echo '文件名(带后缀): '.pathinfo($file,PATHINFO_BASENAME).'
'; echo '文件名(带后缀): '.basename($file).'
'; echo '文件名(没有后缀): '.pathinfo($file,PATHINFO_FILENAME).'
'; echo '文件后缀: '.pathinfo($file,PATHINFO_EXTENSION).'
'; echo '$file是否存在: '.file_exists($file).'
'; echo '$dir是否存在: '.file_exists($dir).'
'; echo file_exists($file) ? "{$file}存在" : "{$file}不存在";

1.png

#获取文件内容 # fopen() 打开文件 $filename = 'test/rename.text'; $file = fopen($filename,'rb'); # fread() 读取文件内容 echo '读取到的内容为: '.fread($file,filesize($filename)).'
'; # ftell() 获取文件指针当前所在位置 指针相当于鼠标的光标 echo '当前指针所在位置为: '.ftell($file).'
'; # 当前读到哪里 # rewind() 将指针调回到开头位置 var_dump(rewind($file)).'
'; echo '当前指针所在位置为: '.ftell($file).'
'; # 当前读到哪里 echo '获取一个字符: '.fgetc($file).'
'; echo '获取一行字符: '.fgets($file).'
'; echo '获取一行字符并且过滤到 HTML : '.fgetss($file).'
'; # 关闭文件 fclose($file); #关闭文件

1.png

#获取图片 header('content-type:image/jpeg'); //直接获取图片会乱码 因为编码格式不对 $picname = 'lemo.png'; $pic = fopen($picname,'rb'); echo fread($pic,filesize($picname)); fclose($picname); #向文件内追加内容并获取指针位置 fputs与fwrite作用相同 $file = fopen($filename,'ab'); var_dump(fputs($file,' **javascript** ')); echo '指针位置: '.ftell($file).'
'; #截取文件内容 echo ftruncate($file,2); #读取CSV格式文件 $file = fopen('test.csv','ab+'); //print_r(fgetcsv($file)); //只读取一行 while ($row = fgetcsv($file)){ #默认以逗号为分割符读取 print_r($row); } #向CSV格式文件写入 $data = [ [22,'lolo','lala','php'], [1,'huhu','juju','js'] ]; foreach ($data as $v){ fputcsv($file,$v,'*'); #以*为分隔符,分隔每个数据 } #直接读取文件内容、获取代码、图片 $filename='test.text'; echo file_get_contents($filename); # 不能过滤标签 echo file_get_contents('http://www.baidu.com'); # 读取远程代码 只是将代码复制过来 功能不好使 echo file_get_contents('test.csv'); #读取csv #读取图片 先设置格式 header('content-type:image/jpeg;'); echo file_get_contents('http://www.baidu.com/img/bd_logo.png');


Correcting teacher:韦小宝Correction time:2018-11-29 10:26:04
Teacher's summary:整理的很完整!不错不错!点个赞!继续加油吧!

Release Notes

Popular Entries