• php文件处理


    文件系统: (函数参考-》文件系统相关扩展-》Filesystem)
        当程序运行时的数据是存放在内存中的,比如变量、常量等;想要长期保存程序运行完毕所产生的数据,我们可以利用文件的方式存储到硬盘上!


    文件类型:
        可以通过filetype()获取一个文件的类型
        windows最常见的只有dir和file


    判断文件类型
        is_dir(路径)  //判断是否是目录
        is_file(路径) //判断是否是文件


        //了解
        is_readable(路径)     //是否可读
        is_writable(路径)     //是否可写
        is_executable(路径) //是否可执行


    文件的属性:(什么叫属性?比如大小、创建时间。。。)
        检测文件或目录是否存在
            file_exists(路径);
        获取文件大小
            filesize(文件路径);     //单位为字节
        获取相关时间
            filectime(文件路径);    //创建时间  create
            filemtime(文件路径);    //修改时间  modify
            fileatime(文件路径);    //访问时间  active


    目录相关
        常见路径格式:
            windows
                C:/www/index.php
                C:wwwindex.php
            Linux
                /var/www/index.php
            相对路径
                ./index.php
                ../1.jpg
        路径相关的函数
            basename()取出路径中的文件名部分
            dirname()去除路径中的文件名部分
            pathinfo()获取路径中的所有信息
            realpath() 获取规范的绝对路径(文件必须存在,否则返回false)


    遍历目录
        opendir(目录路径) 打开一个目录
        readdir(资源) 读取一个目录资源,并将指针往前移,返回文件或目录名
        closedir(资源) 关闭一个目录


    扩充:iconv(原字符集, 目标字符集, 字符串)字符集转换


    创建和删除目录
        mkdir('目录'[, 权限, true]) 创建目录
            在Windows中权限被忽略,Linux中0777表示最高权限
            第3个true,表示递归创建目录
            注意:创建的目录已存在会报错


        rmdir('目录路径') 删除目录,只能删除空目录


        unlink('文件路径') 删除文件
            文件路径:
                相对路径:./a/b/c/1.txt
                绝对路径:C:wampwwwphp15ac1.txt
            注意:http的绝对路径无法删除


    文件的基本操作
        touch('文件名'); 设定文件的修改时间
            如果文件不存在,则会被创建。
        copy(原文件名,新文件名);
            只能复制一个文件,不能复制目录
        rename(旧名,新名);
            重命名一个文件,其实相当于剪切


    文件操作:
        打开文件
            fopen('文件路径', 打开方式);
            打开方式:
                'r'     只读方式打开,将文件指针指向文件头。  
                'r+'    读写方式打开,将文件指针指向文件头。  
                'w'     写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。  
                'w+'    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 
                'a'     写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。  
                'a+'    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 
     
            w或w+/a或a+,如果不存在会自动创建
            r或r+,不会自动创建文件
        写文件
            fwrite(资源, '写的内容');
                写的位置由打开方式决定
        读文件
            fread(资源, 读的长度);
                读的长度必须大于0
        关闭文件
            fclose(资源);


    简单的文件读写:(常用)
        file_get_contents(文件路径)
            读取文件内容,返回文件内容的字符串
        file_put_contents(文件路径,写的内容[, FILE_APPEND])
            文件不存在就创建;默认为覆盖内容,可以用第3个参数设置为追加


    文件上传和下载
        上传用到头像、相册、网盘、资料、种子、资源等
        下载资料、种子、资源、图片等


    文件的上传
        就是将文件从客户端上传到服务端
        实现步骤:
            1、表单的设置
                1.要做文件上传,method必须使用post
                2.必须在form标签里面加:enctype="multipart/form-data"
                    enctype:用于指定在发送数据到服务器之前如何对表单数据进行编码
                    multipart/form-data:表示不对数据进行编码,以文件流(二进制)的形式上传到服务器。
                    application/x-www-form-urlencoded:默认选项,默认对所有字符进行编码
                3.<input type="hidden" name="MAX_FILE_SIZE" value="2000">


            2、服务器端的设置 php.ini
                1. file_uploads = On 是否允许文件上传
                2. upload_max_filesize = 2M 上传文件最大允许范围
                3. post_max_size = 8M POST表单上传数据的最大允许范围
                4. upload_tmp_dir ="c:/wamp/tmp" 上传文件的临时目录
                注意:
                    post_max_size的值一定要大于upload_max_filesize的值


            3、PHP代码处理文件的上传
                1. 上传后的数据用$_FILES接收。
                2. $_FILES中每个元素的意思
                    name    上传的文件名
                    type    文件类型
                    tmp_name    临时文件路径
                        文件上传的原理:就是在脚本执行完毕之前将文件从这个临时路径里面弄出来,因为这货会在脚本执行完毕后自动删除
                    error   错误号
                        其值为 0,没有错误发生,文件上传成功。
                        其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
                        其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
                        其值为 3,文件只有部分被上传。
                        其值为 4,没有文件被上传。
                        其值为 6,找不到临时文件夹。
                        其值为 7,文件写入失败。(比如你的临时目录没有写的权限)
                    size    文件大小,单位为字节


    执行文件上传:
        move_uploaded_file(临时文件名, 新文件名);
        本函数检查文件是否是合法的上传文件


    完整的文件上传步骤
        1、判断错误号
        2、判断文件的mime类型
        3、判断文件的大小
        4、生成随机的文件名
        5、获取文件的后缀名
        6、判断并执行文件上传
            is_uploaded_file()


    文件下载:
        将文件从服务器下载到客户端
        注意:如果浏览器能够识别该文件的mime类型,会直接解析;如果不能识别,则提供下载


        所以,我要手动告诉浏览器,这是一个附件,你不要给我解析出来


        步骤:
            1.告诉它是一个附件
                header('Content-disposition:attachment')
            2.下载的文件没内容
                在php输出的内容会被下载
                用readfile()读取并输出
            3.结合第1步,给文件取个名字
                header('Content-disposition:attachment;filename=xxoo.jpg')
            4.告诉它文件的大小
                header('Content-length:'.filesize('文件路径'));
            5.告诉它文件的类型
                header('Content-type:image/jpeg');
  • 相关阅读:
    JUC基础(三):ConcurrentHashMap 锁分段机制
    JUC基础(二):原子变量 CAS算法
    JUC基础(一):volatile 关键字 内存可见性
    JAVA多线程(十):线程创建使用 (四)JDK5.0新增线程创建方式
    JAVA多线程(九):线程通信(二)线程的通信经典例题:生产者/消费者问题
    JAVA多线程(八):线程通信(一)线程的通信基础
    JAVA多线程(七):线程同步(三)线程的同步代码练习
    JAVA多线程(六):线程同步(二)线程的同步代码实现
    JAVA多线程(五):线程同步(一)线程的同步
    JAVA多线程(四):线程创建使用 (三)线程的生命周期
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257258.html
Copyright © 2020-2023  润新知