操作文件的相关函数

原创 2018-11-29 10:08:13 306
摘要:文件信息相关函数:* 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).'<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}不存在";

1.png

#获取文件内容
    # 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);    #关闭文件

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).'<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
老师总结:整理的很完整!不错不错!点个赞!继续加油吧!

发布手记

热门词条