今天学习一下文件的基本处理
1.打开文件
fopen($filename,$mode);
$filename 表示要打开的文件路径
$mode 表示打开的方式(读,写)
例如:fopen ($file , "ab");
强烈建议用fopen()打开文件时总是使用标记 b
'r' | 只读方式打开,将文件指针指向文件头。 |
'r+' | 读写方式打开,将文件指针指向文件头。 |
'w' | 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'w+' | 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'a' | 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
'a+' | 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
fread($handle , $lenght)
$handle 打开文件后的那个文件
$lenght 读取最多length个字节
foef($handle)
函数判断是否到了文件末尾
3.文件写入数据
fwrite ($handle,$str,[$length])
$str 写入的字符串
$lenght 写入多少个字节
4.fclose() 关闭文件;
来个实例:
<?php
/*
文件路径可以是
1.相对路径
2.绝对路径
$file = "E:/view/test.txt"
3.url远程文件 "http://localhost/demo/view/test.txt"
当远程文件打开,不能以写入的方式打开
必须是远程存在的文件
*/
$file = './images/view/test.txt';
/*操作文件分为以下三步
1.打开文件
2.操作文件 (读 ,写等)
3.关闭文件
*/
$tp = fopen($file, 'ab');
if($tp == false){
echo "文件打开失败";
}
$str = "当前时间为:".time();
if (fwrite($tp, $str)){
echo "写入成功"."<br />";
}
/*
读取文件
需注意fopen的打开方式应该是r或r+
*/
$tp = fopen($file,'rb');
// 利用while循环来判断文件是否到了末尾 来输出内容
while (!feof($tp)) {
echo fread($tp, 1);
}
// 通过文件大小来输出文件内容 文件大小正好按字节来算的
echo fread($tp, filesize($file));
?>
来写其他文件函数
file_get_contents() 获取文件内容
file_put_contents() 将一个字符串写入文件
file_exists() 检查文件或目录是否存在
is_file() 判断给定文件是否为一个正常的文件
fgets() 用于从文件中读取单行 需要配合fopen()使用
fgetc() 用于从文件中读取一个字节 需要配合fopen()使用
fstat() 通过已打开的文件指针取得文件信息 需要配合fopen()使用
filsesize() 取得文件大小
fileatime($file_path) 获取文件上次访问时间
filemtime($file_path) 获取文件上次内容被修改的时间
is_readable() 判断给定文件名是否可读
is_writable() 判断给定的文件名是否可写
unlink() 删除文件函数
file() 把整个文件读入一个数组中
filetype() 文件类型
这是一些常用的还有好多可以查看
http://php.net/manual/zh/function.fopen.php
接下来看一下目录操作
. / 表示当前目录
.. / 表示返回上一级目录
mkdir() 新建目录(创建之前需要检测目录是否已经存在)
opendir() 打开目录,返回一个目录句柄
closedir() 关闭目录句柄
is_dir() 判断是不是一个目录
readdir() 从目录句柄中读取条目
scandir() 列出指定路径中的文件和目录(以数组形式返回)
getdir() 取得当前工作目录(当前脚本目录)
chdir() 改变目录
realpath() 转换为更直观的目录(以当前绝地路径显示出来)
目录操作实例
<?php
/*
要操作的目录可以是相对路径也可以是觉得路径
但不可以是远程目录
目录操作三步骤:
1.创建目录(如果有目录可以省略)
1.打开目录
2.操作目录
3.关闭目录
*/
// 创建目录
$dir = "./demo/a";
/*
0777 代表目录操作最高权限 (linux)
true 当创建包含子目录时必须为true
*/
/*$myDir = mkdir($dir,0777,true);
if(!myDir){
echo "创建失败";
}*/
// 打开文件
$opDir = opendir($dir);
// 输出目录
while (($fileName = readdir($opDir)) !== false) {
echo $fileName."<br />";
}
// 关闭目录
closedir($opDir);
?>
scandir($dir,[true]);
默认是按文件排序输出
当设为true后倒序输出
chdir('./a')
改变当前工作目录到a目录下
未完待续......
文件管理系统实例