php 文件时间,php入门(文件,日期,时间)

1. 文件系统

1. 读取文件

$content = file_get_contents('./test.txt');//读取文件的全部内容

PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,

fread等方法,fgets可以从文件指针中读取一行,freads可以读

取指定长度的字符串

例如:

$fp = fopen('./text.txt', 'rb');

while(!feof($fp)) {

echo fgets($fp); //读取一行,可使用fread($fp, 4096);每次读4096个字符

}

fclose($fp);

2. 判断文件是否存在

如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,is_file是确切的判断给定的路径是否是一个文件

更加精确的可以使用is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写

3. 写入文件

1.最简单的方式是采用file_put_contents。

$filename = './test.txt';

$data = 'test';

file_put_contents($filename, $data);

2.同样的,PHP也支持类似C语言风格的操作方式,采用fwrite进行文件写入。

$fp = fopen('./test.txt', 'w');

fwrite($fp, 'hello');

fwrite($fp, 'world');

fclose($fp);

4. 取得文件的修改时间

fileowner(file):获得文件的所有者

filectime(file):获取文件的创建时间

filemtime(file):获取文件的修改时间

fileatime(file):获取文件的访问时间

5. 取得文件的大小

1. $size = filesize($filename);

2. 如果要转换文件大小的单位,可以自己定义函数来实现。

function getsize($size, $format = 'kb') {

$p = 0;

if ($format == 'kb') {

$p = 1;

} elseif ($format == 'mb') {

$p = 2;

} elseif ($format == 'gb') {

$p = 3;

}

$size /= pow(1024, $p);

return number_format($size, 3); //格式化分组显示函数

}

$filename = '/data/webroot/usercode/code/resource/test.txt';

$size = filesize($filename);

$size = getsize($size, 'kb'); //进行单位转换

echo $size.'kb';

注:如果查看目录的大小,只能递归查找

6. 删除文件

unlink($filename);//删除文件

rmdir($dir);//删除文件夹,必须为空,如果不为空,没有权限

如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。

foreach (glob("*") as $filename) {

unlink($filename);

}

2. 时间和日期

1. 取得时间的时间戳

$time = time();

echo $time;//1396193923,这个数字表示从1970年1月1日 00:00:00 到我输出这个脚本时经历了1396193923秒

2. 取得日期

//date函数,第二个参数取默认值的情况

echo date("Y-m-d");//2014-03-30

//date函数,第二个参数有值的情况

echo date("Y-m-d",'1396193923');//2014-03-30,1396193923表示2014-03-30的unix时间戳

3. 取得日期的Unix时间戳

echo strtotime('2014-04-29');//1398700800,这个数字表示从1970年1月1日 00:00:00 到2014年4月29号经历了1398700800秒

echo strtotime('2014-04-29 00:00:01');//1398700801,这个数字表示从1970年1月1日 00:00:00 到2014-04-29 00:00:01时经历了1398700801秒

大家发现上面的规律了吗,其实strtotime('2014-04-29')相当于strtotime('2014-04-29 00:00:00')

4. 将格式化的日期字符串转换为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秒。

5. GMT时间

echo gmdate('Y-m-d H:i:s', time()); //输出为:2014-05-01 07:15:22 因为格林威治时间是现在中国时区的时间减去8个小时,所以相对于现在时间要少8个小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值