文件相关函数总结

原创 2018-11-29 21:16:18 563
摘要:终于听到韦小宝的声音了 233333  一篇长篇总结开始了... 虽说长篇 不过函数都很简单一.文件信息相关函数    1. filetype() 获取文件类型    2.filesize() 获取文件的大小       &nbs

终于听到韦小宝的声音了 233333  一篇长篇总结开始了... 虽说长篇 不过函数都很简单

一.文件信息相关函数

    1. filetype() 获取文件类型

    2.filesize() 获取文件的大小            //单位:字节

    3.filectime() 获取文件创建时间        //返回时间戳

    4.filemtime() 获取文件修改时间        //返回时间戳

    5.fileatime() 获取文件最后访问时间        //返回时间戳

    6.is_readable() 检查文件是否可读

    7.is_writable() 检查文件可写性

    8.is_executable()检查文件可执行性

    9.拓展( date_default_timezone_set('Asia/Shanghai') ) 设置默认时区

$fileName = 'text.txt';        //设置文件变量
echo filetype($fileName).'<br>';   //file文件  dir目录
echo filesize($fileName).'<br>';        //单位:字节
echo '文件创建的时间为:'.date('Y-m-d H:i:s',filectime($fileName)).'<br>';   //时间戳
echo '文件修改的时间为:'.date('Y-m-d H:i:s',filemtime($fileName)).'<br>';   //时间戳
echo  '文件最后访问的时间为:'.date('Y-m-d H:i:s',fileatime($fileName)).'<br>';   //时间戳
var_dump(is_readable($fileName));    //布尔值
var_dump(is_writable($fileName));    //布尔值
var_dump(is_executable($fileName));    //布尔值

二.文件路径相关函数

    path_info() 返回一个路径相关信息的数组  传入第二个参数的话则返回特定的信息  第二个参数如下

    path_info($fileName,PATHINFO_BASENAME)  返回带后缀的文件名 

    等价函数: basename($fileName)

echo pathinfo($fileName,PATHINFO_BASENAME).'<br>';
echo basename($fileName).'<br>';

    path_info($fileName,PATHINFO_DIRNAME)返回文件路径部分 

    等价函数:dirname($fileName)

echo pathinfo($fileName,PATHINFO_DIRNAME).'<br>';
echo dirname($fileName).'<br>';

    path_info($fileName,PATHINFO_EXTENSION)返回文件后缀名

echo pathinfo($fileName,PATHINFO_EXTENSION).'<br>';

    path_info($fileName,PATHINFO_FILENAME)返回文件名不带后缀名

echo pathinfo($fileName,PATHINFO_FILENAME).'<br>';

    file_exists($fileName)判断文件是否存在 返回布尔值

if(file_exists($fileName)){
    echo '此文件存在';
}else{
    echo '此文件不存在';
}

三.文件操作相关函数

    1.touch() 可以创建一个文件,并且可以修改一个已经存在的文件的访问时间,以及修改时间

    2.unlink() 可以删除一个文件

    3.rename() 可以重命名文件或者文件夹 ,还可以通过新文件名的路径来实现剪切操作

    4.copy 复制文件 还可以拷贝远程文件 需要开启 php.ini的 allow_url_fopen = On

var_dump(touch('text1.txt'));    //创建一个text1.txt文件
var_dump(unlink('text1.txt'));    //删除刚刚创建的text1.txt文件

var_dump(rename('text/text1.txt','text/text.txt'));  //将text1.txt重命名为text.txt
var_dump(rename('text.txt','text/txt.txt'));     //通过第二个参数新文件名的路径不同,实现了剪切操作

var_dump(copy('txt.txt','text/txt.txt'));    //向其他文件夹进行拷贝操作

var_dump(copy('     // 拷贝远程文件,需要开启php.ini文件的allow_url_fopen = On

四.文件内容相关函数

    1.fopen() 打开文件    返回一个资源类型 第二个参数 : r 只读模式 r+读写模式 在文档开头写入替换之前存在的数据 w只写模式 如果文件不存在则会自动创建,如果存在则会清空文件内容再写入 w+ 读写模式  a只写模式 在文档尾部写入  a+ 读写模式 b:支持二进制格式文件

    2.fread() 可以读取文件的内容 必须传入长度

    3.ftell() 获取文件当前指针位置

    4.rewind() 将指针重置回开头

    5.rclose() 关闭文档

header('content-type:image/jpeg');
$file = fopen('123.jpg','rb'); 
echo '读取到的内容为:' .fread($file,filesize('text/txt.txt')).'<br>';    //filesize()获取文件字符长度

echo '指针当前所在的位置为:'. ftell($file).'<br>';    //获取当前指针位置

var_dump(rewind($file));    //重置指针位置
echo '指针当前所在的位置为:'. ftell($file).'<br>';    //0

fclose($file);    //关闭文档流 无法再继续操作

五.文件写入相关函数

    fwrite() 写入文件内容  返回写入的字符数量   fputs() 同样  一个中文代表三个字符  第三个参数为限制写入数据的长度

    rb+读写模式 写入操作时会覆盖对应字符数量的字符   如果不想覆盖,那么先写入 ''.PHP_EOL 再写入数据

    w 读入模式 如果文件不存在则会自动创建,如果存在则会清空文件内容再写入

$file = fopen('text/txt.txt','rb+');    //rb+模式
var_dump(fwrite($file,'网'));    //正常覆盖写入

var_dump(fwrite($file,''.PHP_EOL)); //PHP_EOL  换行
var_dump(fwrite($file,'讲师'));    //不会覆盖文字
//fputs 和fwirte的功能是一样的
fputs($file,'吴三桂');
fputs($file,'吴三桂',3);        //只写入三个字符也就是一个汉字
fclose($file);    //关闭文档流

$file = fopen('text2.txt','wb+');    //换wb+模式
//使用w写入内容,如果文件不存在则会自动创建,如果存在则会清空文件内容再写入
var_dump(fwrite($file,'PHP中文网'));

$file = fopen('text2.txt','ab+');    //换ab+模式写入,在末尾写入数据
var_dump(fwrite($file,'PHP中文网'));

六.文件读取其他函数

    1.fgetc() 从文件中获取一个字符 指针自动下移  

    2.fgets() 从文件中获取一行字符  

    3.fgetss()  从文件中获取一行字符,并且过滤掉html字符

    4.feof()判断指针是否在最后

    5.ftruncate() 截取文件内容为指定长度

echo fgetc($file).'<br>';    //获取一个字符

echo fgets($file).'<br>';    //获取一行字符不过滤html代码

echo fgetss($file).'<br>';    //获取一行字符过滤html代码

while(!feof($file)){    //如果指针不在最后
//    echo fgetc($file).'<br>';    //输出一个字符
echo fgets($file).'<br>';        //输出一行字符 不过滤html代码
    echo fgetss($file).'<br>';    //输出一行字符 过滤html代码
}

var_dump(ftruncate($file,10));    //将文件截取到1个字符输出

七.csv文件操作函数

    1.fgetcsv()  读取csv文件内容

    2.fputcsv  写入csv文件内容

$file = fopen('text3.csv','rb+');

var_dump(fgetcsv($file));    //输出csv格式文件一行数据
while($row = fgetcsv($file)){    //遍历输出csv文件数据
    print_r($row);
}
//写入csv数据(多维数组)

$data = [
    [1,'赵云','小生','zhaoyun'],
    [2,'马超','锦马超','machao'],
    [3,'黄忠','老将','huangzhong'],
];
foreach ($data as $value){    //先遍历为一维数组
    fputcsv($file,$value,'~');    //写入csv数据以'~'分割数据
}

八.文件内容相关的其他函数

    1.file_get_contents  读取一个文件,不需要打开文件直接即可读取

    2.file_put_contents  写入一个文件,不需要打开文件直接写入即可  如果写入的文件不存在 则会自动创建文件,  如果存在,则会清空该文件,然后写入  返回写入的字符长度

    3.strip_tags()  去除html标记

    4.如果我们存入数组或对象必须要将他们进行数据的转换
        *  1. 使用序列化来转换  serialize()序列化   unserialize()  反序列化
        *  2.使用json来进行转换        json_decode()将json格式的数据转换为之前的格式  json_encode() 将数据转为json格式 

echo strip_tags(file_get_contents('text.txt'));   //获取去除html标记的内容
echo file_get_contents('http://www.baidu.com');   //获取远程文件内容
echo file_get_contents('http://www.baidu.com/img/bd_logo.png');   //获取远程图片  需要改头部声明!!!
echo file_get_contents('123.jpg');    //获取本地图片  需要改头部声明!!!
echo file_get_contents('text3.csv');    //获取本地csv格式文件 输出字符串

$str = file_get_contents('text4.txt');
echo file_put_contents('text4.txt','PHP中文网学PHP真的很强大!');
echo file_put_contents('text4.txt',"$str.添加了!!!!");    //不覆盖写入 ,其实也覆盖了 只是把原来的又写一遍

写入数组,或者对象
$data = [
    'name'=>'吴三桂',
    'age'=>28
];
var_dump(file_put_contents('text4.txt',serialize($data)));    //写入序列化格式
var_dump(unserialize(file_get_contents('text4.txt')));        //将将序列化格式数据转会数组读取

var_dump(file_put_contents('text4.txt',json_encode($data)));    //写入json格式数据
var_dump(json_decode(file_get_contents('text4.txt')));        //将json格式转化回原来格式读取

文件相关函数总体上来说都不难,就是比较多 需要加强记忆

批改老师:韦小宝批改时间:2018-11-30 09:10:19
老师总结:是的,PHP文件相关的函数常用的并不多!但是还是需要多多练习来加强记忆哦!

发布手记

热门词条