zoukankan      html  css  js  c++  java
  • PHP文件处理

    PHP文件处理

    fopen()函数用于在PHP中打开文件夹

    打开文件

    <html>
    <body>
    <?php
    
    $file=fopen("welcome.txt","r");
    
    ?>
    
    </body>
    </html>

    文件打开模式

    r 只读。在文件的开头开始。

    r+ 读/写。在文件的开头开始。

    w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。

    w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。

    a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。

    a+ 读/追加。通过向文件末尾写内容,来保持文件内容。

    x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    如果文件不能被打开

    如果fopen()函数无法打开指定文件,则返回0(false)

    如果fopen()函数不能打开指定的文件,下面的实例会生成一段消息

    <html>
    <body>
    
    <?php
    $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    ?>
    
    </body>
    </html>

    检测文件末尾(EOF)

    feof()函数检测是否已经达到文件末尾(EOF)。

    在循环遍历位置长度数据时,feof()函数很有用

    实例 if(feof($file)) echo "文件结尾";

    逐行读取文件

    fgets()函数用于从文件中逐行读取文件。

    注释:在调用该函数之后,文件指针会移动到下一行。

    实例:

    <?php
        $file = fopen("welcome.txt", "r") or exit("无法打开文件!");
        // 读取文件每一行,直到文件结尾
        while(!feof($file))  //判断是否到文件结尾
        {
            echo fgets($file). "<br>"; //打印当前行数据
        }
        fclose($file);
    ?>

    文件上传

    创建一个文件上传表单

    <html>
        <head>
        <meta charset="utf-8">
        <title>php教程(runoob.com)</title>
        </head>
        <body>
    
        <form action="upload_file.php" method="post" enctype="multipart/form-data">
            <label for="file">文件名:</label>
            <input type="file" name="file" id="file"><br>
            <input type="submit" name="submit" value="提交">
        </form>
    
        </body>
    </html>

    <form>标签的enctype属性规定了在提交表单时要使用哪种内容类型,在表单需要二进制数据时,比如说文件内容,可以使用multipart/form-data

    创建上传脚本,获取文件相关信息

    <?php
            if($_FILES["file"]["error"]>0){
                
                echo "错误:".$_FILES["file"]["error"]."<br>";
                
            }else{
                
                //获取文件信息
                echo "上传文件名".$_FILES["file"]["name"]."<br>";  //label标签的file属性
                echo "文件类型".$_FILES["file"]["type"]."<br>";
                echo "文件大小".(_FILES["file"]["size"]/1024)."KB<br>";
                echo "文件临时存储位置".$_FILES["file"]["tmp_name"];
            }
    ?>

    上传限制

    用户只能上传GIF,jpeg,jpg,png文件,且文件大小必须小于200kb

    <?php
            $allowExts = array("gif","jpeg","jpg","png");
            $temp = explode(".",$_FILES["file"]["name"]);
            $extension = end($temp);    //获取文件后缀名
            
            //判断文件类型
            if((($_FILES["file"]["type"] == "image/gif")
            ||($_FILES["file"]["type"] == "image/jpeg")
            ||($_FILES["file"]["type"] == "image/jpg")
            ||($_FILES["file"]["type"] == "image/png"))
            &&($_FILES["file"]["size"] < 204800)  //小于200KB
            && in_array($extension,$allowedExts))
            {
                if($_FILES["file"]["error"]>0){
                    
                    echo "错误:".$_FILES["file"]["error"]."<br>";
                    
                }else{
                    
                    //获取文件信息
                    echo "上传文件名".$_FILES["file"]["name"]."<br>";  //label标签的file属性
                    echo "文件类型".$_FILES["file"]["type"]."<br>";
                    echo "文件大小".(_FILES["file"]["size"]/1024)."KB<br>";
                    echo "文件临时存储位置".$_FILES["file"]["tmp_name"];
                    
                    
                    //判断当前目录下的upload目录是否存在该文件
                    //如果没有upload目录,就创建
                    if(file_exists("upload/".$_FILES["file"]["name"]))
                    {
                        echo $_FILES['file']["name"]."文件已存在";
                    }else{
                        //如果upload目录不存在该文件则将文件上传到upload目录下
                        move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);
                        echo "文件存储在:" . "upload/".$_FILES['file']['name'];
                    }
                }
            
            }else{
                echo "非法的文件格式";
            
            }
            
    ?>
  • 相关阅读:
    FineUI开源版(ASP.Net)初学手册-部分JS整理
    ASP.NET-FineUI开发实践-15
    ASP.NET-FineUI开发实践-14
    FineUI开源版(ASP.Net)开发实践-目录
    ASP.NET-FineUI开发实践-13(二)
    ASP.NET-FineUI开发实践-13(一)
    在VS.NET中根据条件设置不同的MainForm
    VB.NET在基类中定义共享事件(类似于C#中的静态事件)
    也谈解决Combobox绑定数据后取值出现System.Data.DataRowView的问题
    在SQL Server 2014下面使用的SQL2000的Northwind和Pubs示例数据库
  • 原文地址:https://www.cnblogs.com/liaopeng123/p/11555371.html
Copyright © 2011-2022 走看看