php管理文件系统,PHP文件系统

PHP具有丰富的文件操作函数。最简单的读取文件的函数为file_get_contents,能够将整个文件所有读取到一个字符串中。

$content = file_get_contents(‘./test.txt‘);

file_get_contents也能够通过參数控制读取内容的開始点以及长度。

$content = file_get_contents(‘./test.txt‘, null, null, 100, 500);

PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets能够从文件指针中读取一行,freads能够读取指定长度的字符串。

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

while(!feof($fp)) {

echo fgets($fp); //读取一行

}

fclose($fp);

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

$contents = ‘‘;

while(!feof($fp)) {

$contents .= fread($fp, 4096); //一次读取4096个字符

}

fclose($fp);

使用fopen打开的文件,最好使用fclose关闭文件指针,以避免文件句柄被占用。

推断文件是否存在

普通情况下在对文件进行操作的时候须要先推断文件是否存在,PHP中经常使用来推断文件存在的函数有两个is_file与file_exists.

$filename = ‘./test.txt‘;

if (file_exists($filename)) {

echo file_get_contents($filename);

}

假设仅仅是推断文件存在,使用file_exists即可。file_exists不仅能够推断文件是否存在,同一时候也能够推断文件夹是否存在,从函数名能够看出。is_file是确切的推断给定的路径是否是一个文件。

$filename = ‘./test.txt‘;

if (is_file($filename)) {

echo file_get_contents($filename);

}

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

$filename = ‘./test.txt‘;

if (is_writeable($filename)) {

file_put_contents($filename, ‘test‘);

}

if (is_readable($filename)) {

echo file_get_contents($filename);

}

写入内容到文件

与读取文件相应。PHP写文件也具有两种方式,最简单的方式是採用file_put_contents。

$filename = ‘./test.txt‘;

$data = ‘test‘;

file_put_contents($filename, $data);

上例中,$data參数能够是一个一维数组,当$data是数组的时候,会自己主动的将数组连接起来,相当于$data=implode(‘‘,

$data);

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

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

fwrite($fp, ‘hello‘);

fwrite($fp, ‘world‘);

fclose($fp);

取得文件的改动时间

文件有非常多元属性,包含:文件的全部者、创建时间、改动时间、最后的訪问时间等。

fileowner:获得文件的全部者

filectime:获取文件的创建时间filemtime:获取文件的改动时间fileatime:获取文件的訪问时间

当中最经常使用的是文件的改动时间,通过文件的改动时间。能够推断文件的时效性,经经常使用在静态文件或者缓存数据的更新。

$mtime = filemtime($filename);

echo ‘改动时间:‘.date(‘Y-m-d H:i:s‘, filemtime($filename));

取得文件的大小

通过filesize函数能够取得文件的大小。文件大小是以字节数表示的。

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

$size = filesize($filename);

假设要转换文件大小的单位。能够自定义函数来实现。

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‘;

值得注意的是,没法通过简单的函数来取得文件夹的大小。文件夹的大小是该文件夹下全部子文件夹以及文件大小的总和,因此须要通过递归的方法来循环计算文件夹的大小。

删除文件

跟Unix系统命令类似,PHP使用unlink函数进行文件删除。

unlink($filename);

删除目录使用rmdir函数,目录必须为空,假设不为空或者没有权限则会提示失败。

rmdir($dir);

假设文件夹中存在文件。能够先循环删除文件夹中的全部文件。然后再删除该文件夹。循环删除能够使用glob函数遍历全部文件。

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

unlink($filename);

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值