文件系统
判断文件是否存在
- 如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,
- is_file是确切的判断给定的路径是否是一个文件。
-
更加精确的可以使用is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写。
写入内容到文件
- 最简单的方式是采用file_put_contents。
- 采用fwrite进行文件写入。
取得文件的修改时间
文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。
fileowner:获得文件的所有者
filectime:获取文件的创建时间
filemtime:获取文件的修改时间
fileatime:获取文件的访问时间
取得文件的大小
通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。
没法通过简单的函数来取得目录的大小,目录的大小是该目录下所有子目录以及文件大小的总和,因此需要通过递归的方法来循环计算目录的大小
删除文件
1.使用unlink函数进行文件删除。
2.删除文件夹使用rmdir函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。
3.如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。
日期和时间
取得当前的Unix时间戳
$time = time();
echo $time;//1396193923,这个数字表示从1970年1月1日 00:00:00 到我输出这个脚本时经历了1396193923秒
取得当前的日期
函数说明:date(时间戳的格式, 规定时间戳【默认是当前的日期和时间,可选】)
返回值:函数日期和时间
echo date('Y-m-d','1396193923');
echo date('Y-m-d');
取得日期的Unix时间戳
它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。
echo strtotime('2014-05-01');
将格式化的日期字符串转换为Unix时间戳
echo strtotime("now");//相当于将英文单词now直接等于现在的日期和时间,并把这个日期时间转化为unix时间戳。这个效果跟echo time();一样。
echo strtotime("+1 seconds");//相当于将现在的日期和时间加上了1秒,并把这个日期时间转化为unix时间戳。这个效果跟echo time()+1;一样。
echo strtotime("+1 day");//相当于将现在的日期和时间加上了1天。
echo strtotime("+1 week");//相当于将现在的日期和时间加上了1周。
echo strtotime("+1 week 3 days 7 hours 5 seconds");//相当于将现在的日期和时间加上了1周3天7小时5秒。
格式化格林威治(GMT)标准时间
我们现在所在的中国时区是东八区,领先格林威治时间8个小时,有时候也叫GMT+8,那么服务器运行以下脚本返回的时间应该是这样的:
当前时间假定是2014-05-01 15:15:22
echo date('Y-m-d H:i:s', time()); //输出为:2014-05-01 15:15:22
echo gmdate('Y-m-d H:i:s', time()); //输出为:2014-05-01 07:15:22 因为格林威治时间是现在中国时区的时间减去8个小时,所以相对于现在时间要少8个小时