php笔记(5)——文件操作
2016-05-29 13:51
309 查看
读取文件内容
判断文件是否存在
写入内容到文件
文件修改时间
文件大小
删除文件
file_get_contents也可以通过参数控制读取内容的开始点以及长度。
PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。
is_file是确切的判断给定的路径是否是一个文件
is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写
当
或使用fwrite写入
其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。
如果要转换文件大小的单位,可以自己定义函数来实现。
删除文件夹使用rmdir函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。
如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。
判断文件是否存在
写入内容到文件
文件修改时间
文件大小
删除文件
读取文件内容
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);
判断文件是否存在
file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在is_file是确切的判断给定的路径是否是一个文件
is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写
$filename = './test.txt'; if (is_file($filename)) { echo file_get_contents($filename); }
$filename = './test.txt'; if (is_writeable($filename)) { file_put_contents($filename, 'test'); } if (is_readable($filename)) { echo file_get_contents($filename); }
写入内容到文件
$filename = './test.txt'; $data = 'test'; file_put_contents($filename, $data);
当
$data是数组时,会自动的将数组连接起来,相当于
$data=implode('', $data);
或使用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); }
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- rem : web app适配的秘密武器
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- 简单好用的PHP分页类
- ASP.NET、ASP、PHP、JSP之间有什么区别?