php 文件操作

前言

文件,保存数据(二进制数据,文本数据)
文件在程序中是以流的形式来操作的

正文

基本用法

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值