前言
文件,保存数据(二进制数据,文本数据)
文件在程序中是以流的形式来操作的
正文
基本用法
date_default_timezone_set("PRC");
$path = "test.txt";
$fp = fopen($path,"r"); //打开文件
$file_info = fstat($fp); //读取资源信息
// echo "<pre>";
// var_dump($file_info);
// echo "</pre>";
echo "<br>上次修改时间".date("Y-m-d H:i:s",$file_info['atime']);
fclose($fp);
[atime] 文件上一次被访问的时间
[mtime] 文件上一次内容被修改的时间
[ctime] 文件上一次 文件所有者/文件所在组 修改/change
单用户可以认为是创建时间
读文件
第一种方法
$path = "test.txt";
if(file_exists($path)){
$fp = fopen($path,"a+");
$con = fread($fp, filesize($path));
$con = str_ireplace("\r\n","<br>",$con);
echo "$con";
}
fclose($fp);
第二种方法
$con = file_get_contents($path);
$con = str_ireplace("\r\n","<br>",$con);
echo $con;
第三种方法
$buffer = 1024;
$str = "";
while (!feof($fp)){
$str.= fread($fp,$buffer);
}
$con = str_ireplace("\r\n","<br>",$str);
echo $con;
写文件
第一种方法
$path = "test.txt";
if(file_exists($path)){
$fp = fopen($path,"a+");
$con = "你好";
fwrite($fp, $con);
}
fclose($fp);
a: append w: write
第二种方法(直接添加字符串)
$path = "test.txt";
$con = "北京你好\r\n";
file_put_contents($path, $con,FILE_APPEND);
拷贝图片
$path = "C:\\Users\\ixiao\\Pictures\\Kyire\\kyire.jpeg";
if(!copy($path,"d:\\1.jpeg")){
echo "error";
}else{
echo "ok";
}
如果有中文路径,那么用
string iconv ( string $in_charset , string $out_charset
, string $str )
将字符串 str 从 in_charset 转换编码到 out_charset。
创建/删除文件夹
madir(dirname)
rmdir(dirname)
创建/删除文件
$fp = fopen($path,"a+");
fwrite($fp,$string);
fclose($fp);
if(is_file($path)){
unlink($path);
}
用form上传文件
<form action="" enctype="multipart/form-data" method="post">
<input type="file" name="myfile">
<input type="submit">
</form>
用$_FILES来记录上传的文件
if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
$uploaded_file = $_FILES['myfile']['tmp_name'];
$move_to_file = $_SERVER['DOCUMENT_ROOT']."file/".
iconv("utf-8","gb2312",$_FILES['myfile']['name']);
move_uploaded_file($uploaded_file, $move_to_file);
}
控制用户上传的类型,大小
防止重名文件的覆盖,以及按照用户ID来建立文件夹
数据库存放 文件的path,user,introduction