目录和文件

目录部分

basename()函数用于返回有扩展名的文件名,如:

basename($path);

将会返回文件名包含扩展名

dirname()函数用于返回文件所在路径,如:

dirname($path);

获取路径文件的信息:pathinfo(),它的类型为数组类型。需要以数组的形式对它进行输出。如:

$path = pathinfo($path);
echo $path;

将会得到一个数组,包含:dirname、basename、extension、filename。若需要分开输出,即如:

$path = pathinfo($path);
echo $path['dirname'];

磁盘、目录和文件计算

计算文件大小

filesize()可以返回指定文件字节大小。如:

$path = 'c:\AppServ\www\Test\test.php';
echo filesize($path);

如果要计算出是多少KB,那就除以1024:

$path = 'c:\AppServ\www\Test\test.php';
echo filesize($path) / 1024;

由于所得结果小数尾数太长,则可以四舍五入,用round()函数:

$path = 'c:\AppServ\www\Test\test.php';
echo round(filesize($path) / 1024,2).'KB';

参数2的意思是保留后两位。

计算磁盘的可用空间
disk_free_space()函数,返回指定目录所在磁盘分区的可用空间。如:

echo disk_free_space('C:');//C盘,默认是字节数显示。

转换之后为:

echo round(disk_free_space('C:')/1024/1024/1024,2).'GB';

即得到结果为GB,注意:除以一次1024是KB,除以两次是MB,三次则是GB。

计算磁盘的总空间
disk_total_space()函数可以返回指定目录所在磁盘分区的总容量。如:

echo round(disk_total_space('C:')/1024/1024/1024,2).'GB';

获取文件最后访问时间
fileatime()函数返回文件的最后访问时间。Unix时间戳形式,需要将时间戳翻译成正常日期显示,需要用date()函数,格式化显示日期,如:

$file = 'c:\AppServ\www\Test\test.php';
date_default_timezone_set('Asia/Shanghai');
echo date("Y-m-d,h:i:s",fileatime($file));

需要注意: 默认date时区并非国内的时区时间,所以需要设置:

date_default_timezone_set('Asia/Shanghai');//设置成国内时间

获取文件最后改变时间(文件所有者权限改变)
filectime()函数返回文件的最后改变时间,也是unix时间戳。

获取文件最后修改时间(内容改变,一般都是修改时间用的多)
filemtime()函数返回文件的最后修改时间,也是unix时间戳。

文件部分

将数据写入一个文件,有3个步骤:
1、打开这个文件,如果这个文件不存在,需要创建它;
2、将数据写入这个文件;
3、关闭这个文件。
同理,从一个文件读取数据,也有3个步骤:
1、打开这个文件,如果不能打开,就正确退出;
2、从文件中读出数据;
3、关闭这个文件。

打开文件:fopen()函数,当打开文件时,还需要指定如何使用它,也就是文件模式。分别有:

模式模式名称意义
r只读文件指针置于文件开头
r+读写文件指针置于文件开头
w只写在写入前,删除文件内容,将指针返回到文件开头。如果文件不存在,则尝试创建。
w+读写在读取写入前,删除文件内容,将指针返回到文件开头。如果文件不存在,则尝试创建。
a只写文件指针置于文件末尾。如果文件不存在,则尝试创建。此模式成为追加(append)。
a+写读文件指针置于文件末尾。如果文件不存在,则尝试创建。此过程追加到文件。
b二进制
t文本用于与其他模式的结合

打开并写入文件演示

fopen()一般传两个参数:文件名、文件模式;
fwrite()为向文件写入数据,传:参数名、内容、长度(可不写,一般使用strlen()函数计算);

$fp = fopen('file.txt','w');
//向文件里写入一些数据,一般创建变量来进行操作
$outstring = 'test test test';
fwrite($fp,$outstring,strlen($outstring));

//当打开一个文件的时候,习惯性将其关闭。
fclose($fp);

打开文件也可以用新的函数:file_get_contents();
而写入文件可以用:file_put_contents();如:

file_put_contents('file2.txt','this is test2');

打开并读出文件演示:

$fp = fopen('file.txt','r');
fcloe($fp);

fgetc():读出一个字符,并将指针移到下一个字符;
fgets():读出一行字符,可以指定一行显示的长度;
fgetss():从文件指针中读取一行并过滤掉HTML标记;
fread():读取定量的字符;
fpassthru():输出文件指针处的所有的所有剩余数据;

file():将整个文件读入数组中,以行进行分组;
readfile():读入一个文件并写入到输出缓冲;

file_get_contents():将整个文件读入一个字符串。不需要额外写关闭

如:

$fp = fopen('file.txt','r');
echo fgetc($fp);
fcloe($fp);

打印全部文件,可以用循环语句while(),如:

$fp = fopen('file.txt','r');
while(!feof($fp)){
    echo fgetc($fp);
}

feof()判断读完文件。
查看文件是否存在
file_exists()函数检测文件或目录是否存在。

if(file_exists('file.txt')){
    ///...
}else{
    ///...
}

查看一个文件的大小:filesize();
删除一个文件:unlink();
在文件中定位:rewind()fseek()ftell():
rewind():可以将文件指针复位到文件的开始;
ftell():可以以字节为单位报告文件指针当前在文件中的位置;
fseek():可以将文件指针fp从whence位置移动offset字节。

还有个文件用到的函数是锁定:flock().

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值