美文网首页
php文件读写

php文件读写

作者: zhanglizzy | 来源:发表于2017-03-30 19:50 被阅读19次

    一、文件编程:
    在网站开发中,我们要使用到文件的上传和下载。
    文件就是保存数据(二进制数据、文本数据),在开发者角度看文件就是数据源。


    流.png

    二、php文件操作
    1、打开文件:

    <?php  
        
        $file_path = "cookie.php";
        //打开文件、该函数返回一个指向文件的指针
        if ($fp = fopen($file_path, "r")) {
            $file_info = fstat($fp);
            echo "<pre>";
            print_r($file_info);
            echo "</pre>";
            echo "<br/>文件大小:{$file_info['size']}";
            echo "<br/>上次修改时间(内容被修改):".date("Y-m-d H:i:s",$file_info['mtime']);
            echo "<br/>上次访问时间:".date("Y-m-d H:i:s",$file_info['atime']);
            echo "<br/>上次change时间(该文件上一次文件所有者/文件所在组修改):".date("Y-m-d H:i:s",$file_info['ctime']);
        } else {
            echo "打开文件失败";
        }
    
        //关闭文件
        fclose($fp);
    
        //第二种方式获取信息
        echo "<br/>".filesize($file_path);
        echo "<br/>".date("Y-m-d H:i:s",fileatime($file_path));
        echo "<br/>".date("Y-m-d H:i:s",filectime($file_path));
        echo "<br/>".date("Y-m-d H:i:s",filemtime($file_path));
    ?>  
    

    2、读文件:

    <?php  
        
        $file_path = "test.txt";
        //先判断文件是否存在
        if (file_exists($file_path)) {
            //打开文件
            $fp = fopen($file_path, "a+");
            //读内容,并输入
            $con = fread($fp, filesize($file_path));
            echo "文件的内容是:<br/>".$con;
        } else {
            echo "文件不存在!";
        }
    
        //关闭文件
        fclose($fp);
    ?>  
    

    3、写文件:

    $file_path = "test.txt";
    if (file_exists($file_path)) {
    
        //print_r($file_path);
        //追加要用a+    
        $fp = fopen($file_path,"a+");
        $content = "\r\n你好";
        fwrite($fp, $content);
        echo "添加成功";
    } else {
        echo "文件不存在!";
    }
    
    fclose($fp);
    

    4、上传文件:
    操作页面:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>上传文件</title>
    </head>
    <body>
    <form action="doAction.php" method="post" enctype="multipart/form-data">
    请选择您要上传的文件:
    <input type="file" name="myFile" /><br/>
    <input type="submit" value="上传文件"/>
    </form>
    </body>
    </html>
    

    doAction.php:

    <?php
    //$_FILES:文件上传变量
    //print_r($_FILES);
    $filename=$_FILES['myFile']['name'];
    $type=$_FILES['myFile']['type'];
    $tmp_name=$_FILES['myFile']['tmp_name'];
    $size=$_FILES['myFile']['size'];
    $error=$_FILES['myFile']['error'];
     
    //将服务器上的临时文件移动到指定位置
    //方法一move_upload_file($tmp_name,$destination)
    //move_uploaded_file($tmp_name, "uploads/".$filename);//文件夹应提前建立好,不然报错
    //方法二copy($src,$des)
    //以上两个函数都是成功返回真,否则返回false
    //copy($tmp_name, "copies/".$filename);
    //注意,不能两个方法都对临时文件进行操作,临时文件似乎操作完就没了,我们试试反过来
    copy($tmp_name, "copies/".$filename);
    move_uploaded_file($tmp_name, "uploads/".$filename);
    //能够实现,说明move那个函数基本上相当于剪切;copy就是copy,临时文件还在
     
    //另外,错误信息也是不一样的,遇到错误可以查看或者直接报告给用户
    if ($error==0) {
      echo "上传成功!";
    }else{
      switch ($error){
        case 1:
          echo "超过了上传文件的最大值,请上传2M以下文件";
          break;
        case 2:
          echo "上传文件过多,请一次上传20个及以下文件!";
          break;
        case 3:
          echo "文件并未完全上传,请再次尝试!";
          break;
        case 4:
          echo "未选择上传文件!";
          break;
        case 5:
          echo "上传文件为0";
          break;
      }
    }
    

    相关文章

      网友评论

          本文标题:php文件读写

          本文链接:https://www.haomeiwen.com/subject/gmmjottx.html