摘要:文件信息相关函数:* 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_put_contents($filename,$data) 将一个字符串写入文件 $data 类型可以是 string,array 或者是 stream 资源
是清空内容之后在填入内容;如果文件不存在,则先创建文件在填写内容。如果不想清空 先获取所有内容然后拼接一起
#获取文件信息 路径等函数
date_default_timezone_set('Asia/Shanghai');
$file = 'test.text';
$dir = 'test';
echo '文件类型:'.filetype($file).'<br>';
echo '文件夹类型:'.filetype($dir).'<br>';
echo '文件大小:'.filesize($file).'<br>';
echo '文件夹大小:'.filesize($dir).'<br>';
echo '文件创建的时间:'.date('Y-m-d H:i:s',filectime($file)).'<br>';
echo '文件修改的时间:'.date('Y-m-d H:i:s',filemtime($file)).'<br>';
echo '文件最后访问的时间:'.date('Y-m-d H:i:s',fileatime($file)).'<br>';
echo '文件的可读性:'.is_readable($file).'<br>';
echo '文件的可读性:'.var_export(is_readable('te.text'),true).'<br>';
echo '文件夹的可读性:'.is_readable($dir).'<br>';
echo '文件的可写性:'.is_writable($file).'<br>';
echo '文件是否可执行性:'.is_executable($file).'<br>';
echo '<pre>'.var_export(pathinfo($file),true).'<br>';
echo '<pre>'.var_export(pathinfo($dir),true).'<br>';
echo '文件目录部分: '.pathinfo($file,PATHINFO_DIRNAME).'<br>';
echo '文件目录部分: '.dirname($file).'<br>';
echo '文件名(带后缀): '.pathinfo($file,PATHINFO_BASENAME).'<br>';
echo '文件名(带后缀): '.basename($file).'<br>';
echo '文件名(没有后缀): '.pathinfo($file,PATHINFO_FILENAME).'<br>';
echo '文件后缀: '.pathinfo($file,PATHINFO_EXTENSION).'<br>';
echo '$file是否存在: '.file_exists($file).'<br>';
echo '$dir是否存在: '.file_exists($dir).'<br>';
echo file_exists($file) ? "{$file}存在" : "{$file}不存在";
#获取文件内容 # fopen() 打开文件 $filename = 'test/rename.text'; $file = fopen($filename,'rb'); # fread() 读取文件内容 echo '读取到的内容为: '.fread($file,filesize($filename)).'<br>'; # ftell() 获取文件指针当前所在位置 指针相当于鼠标的光标 echo '当前指针所在位置为: '.ftell($file).'<br>'; # 当前读到哪里 # rewind() 将指针调回到开头位置 var_dump(rewind($file)).'<br>'; echo '当前指针所在位置为: '.ftell($file).'<br>'; # 当前读到哪里 echo '获取一个字符: '.fgetc($file).'<br>'; echo '获取一行字符: '.fgets($file).'<br>'; echo '获取一行字符并且过滤到 HTML : '.fgetss($file).'<br>'; # 关闭文件 fclose($file); #关闭文件

#获取图片
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).'<br>';
#截取文件内容
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');
批改老师:韦小宝批改时间:2018-11-29 10:26:04
老师总结:整理的很完整!不错不错!点个赞!继续加油吧!