首页 > 作文

php文件操作(最后进行文件常用函数封装)

更新时间:2023-04-08 02:51:04 阅读: 评论:0

文件信息相关api

    $filename="./1-file.php";    //filetype($filename):获取文件的类型,返回的是文件的类型    echo '文件类型为:',filetype($filename),"\n";//file    //filesize($filename):获得文件的大小,返回字节    echo '文件大小为:',filesize($filename),"\n";//1214    //filectime($filename):获取文件的创建时间    echo '文件创建时间为:',filectime($filename),"\n";//1578719729    echo '文件创建时间为:',date('y年m月d日 h:i:s',filectime($filename)),"\n";//2020年01月11日 13:15:29    //filemtime($filename):文件的修改时间    echo '文件的修改时间为:',date("y/m/d h:i:s",filemtime($filename)),"\n";//2020/01/11 14:28:20    //fileatime($filename):文件的最后访问时间    echo '文件的最后访问时间为:',date("y/m/d h:i:s",fileatime($filename)),"\n";//2020/01/11 14:28:20

检测文件是否可读、可写、可执行is_readable()、is_writeable()、is_executable();

    $filename="./1-file.php";    var_dump(      is_readable($filename),//bool(true)      is_writable($filename),//bool(true)      is_writeable($filename),//bool(true)      is_executable($filename)//bool(fal)    );

is_file($filename):检测是否为文件,并且文件存在

    var_dump(is_file($filename));//bool(true)

pathinfo():文件路径相关信息

    $filename="./test1.txt";    $pathinfo=pathinfo($filename);    print_r($pathinfo);    /*    array    (       [dirname] => .       [baname] => test1.txt       [extension] => txt       [filename] => test1    )    */    echo '文件扩展名:',pathinfo($filename,pathinfo_extension),"\n";//txt    $filename=__file__;      echo pathinfo($filename,pathinfo_dirname),"\n";//d:\phpstu春节疫情dy_pro\www\phptest    echo pathinfo($filename,pathinfo_baname),"\n";//2-path.php    echo pathinfo($filename,pathinfo_extension),"\n";//php    echo pathinfo($filename,pathinfo_filename),"\n";//2-path    //baname():返回路径中的文件名部分    echo baname($filename),"\n";//2-path.php    echo baname($filename,'.php'),"\n";//2-path    //dirname():返回文件名中路径部分    echo dirname($filename),"\n";//d:\phpstudy_pro\www\phptest    //file_exists():检测文件或者目录是否存在    var_dump(file_exists($filename));//d:\phpstudy_pro\www\phptest-path.php:31:bool(true)    touch('aa.txt');

文件相关操作
文件创建、删除、剪切、重命名、拷贝

    //touch($filename):创建文件    $filename='test1.txt';    var_dump(touch($filename));//bool(true)    //unlink($file描写西湖的句子name):删除指定文件    var_dump(unlink($filename));//bool(true)    //检测文件存在则删除    if(file_exists($filename)){        if(unlink($filename)){            echo '文件删除成功';        }el{            echo '文件删除失败';        }    }el{        echo '要删除的文件不存在';//要删除的文件不存在    }    touch($filename);    //rename($filename,$newname):重命名或者剪切文件    $newname='test111.txt';    if(rename($filename,$newname)){        echo '重命名成功';//重命名成功    }el{        echo '重命名失败';    }    //将test123.txt剪切到test目录下test123.txt     $filename='test123.txt';     $path='./test/test123.txt';     if(file_exists($filename)){       if(rename($filename,$path)){         echo '文件剪切成功';       }el{         echo '文件剪切失败';//文件剪切失败       }     }el{       echo '文件不存在';     }    //copy($source,$dest):复制文件     $source='2-path.php';     $dest='test123/2-path.php';     if(copy($source,$dest)){       echo '文件拷贝成功';     }el{       echo '文件拷贝失败';//文件拷贝失败     }    //拷贝远程文件需要开启php配置文件中的allow_url_fopen=on    var_dump(copy('/d/file/titlepic/ppre    //fopen():打开指定文件,以指定的方式来打开    $handle=fopen($filename,'r');     var_dump($handle);//resource(5) of type (stream)    //fread():读取文件内容 一个中文3个字节     $res=fread($handle,3);     echo $res,"\n";//这     $res=fread($handle,3);     echo $res,"\n";//是(接着上一次继续读取)    //filesize() 函数返回指定文件的大小     echo filesize($filename),"\n";//55     $res=fread($handle,filesize($filename));     echo $res,"\n";//(接着上一次继续读取)读取全部内容     //一段测试文本    //这是另一段测试文本hh    //ftell返回文件指针读/写的位置     echo ftell($handle),"\n";//55    var_dump(fread($handle,21));//string(0) ""    //fek($handle,$num):重置指针    fek($handle,0);    var_dump(fread($handle,21));//string(21) "这是一段测试文"    //fclo($handle):关闭文件句柄    fclo($handle);    var_dump(fread($handle,21));//bool(fal)

文件写入

    $filename=__dir__.'/aa.txt';    //rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在    $handle=fopen($filename,'rb+');    //fwrite()/fputs():写入内容    //注意:fwrite向文件写入内容,如果之前有内容,会产生覆盖    fwrite($handle,'abcdef',3);    fclo($handle);    //abc是一段测试文本    //这是另一段测试文本hh

文件追加

    //如果文件不存在会创建,    //如果文件存在,会先将文件内容截断为0,接着在开始写入    $filename="./aa.txt";    //ab+ 追加模式    $handle=fopen($filename,'ab+');    fwrite($handle,php_eol.'hello king');    fclo($handle);    //abc是一段测试文本    //这是另一段测试文本hh    //hello king

截断文件

    $filename='aa.txt';    $handle=fopen($filename,'rb+');    //ftruncate():截断文件    ftruncate($handle,4);    fclo($handle);    //abcæ 第四个中文被截断后的奇葩效果哈哈哈哈

检测文件指针是否到了文件末尾

    $filename='aa.txt';    $handle=fopen($filename,'rb+');    //feof():检测文件指针是否到了文件末尾    while(!feof($handle)){      //一个字符一个字符读取      // echo fgetc($handle);      //一行一行读取      echo fgets($handle)."\n";      //一行一行读取,并且过滤html标记      echo strip_tags(fgets($handle))."\n";      //fgetss() 函数从打开的文件中读取一行并过滤掉 html 和 php 标记      echo fgetss($handle);    }

fgetcsv() 函数从文件指针中读入一行并解析 csv 字段

    $filename='ur.csv';    $handle=fopen($filename,'rb+');     $rows=[];     while($row=fgetcsv($handle)){       $rows[]=$row;     }     print_r($rows);         $handle=fopen('ur1.csv','rb+');    while($row=fgetcsv($handle,0,'-')){      print_r($row);    }

fputcsv() 函数将行格式化为 csv 并写入一个打开的文件

    $filename='ur3.csv';    $handle=fopen($filename,'wb+');    $data=[      ['id'=>1,'courname'=>'ios','courdesc'=>'this is ios'],      ['id'=>2,'courname'=>'android','courdesc'=>'this is android'],      ['id'=>3,'courname'=>'swift','courdesc'=>'this is swift']    ];    foreach($data as $val){      fputcsv($handle,$val,'-');    }    fclo($handle);

获取到文件中的文本

    $filename="./aa.txt";    $string=file_get_contents($filename);    echo $string;    //abc是一段测试文本    //这是另一段测试文本hh    //hello king

向文件中写入内容
不存在则创建再写入

    $filename='./aa.txt';    //file_put_contents($filename,$data):向文件中写入内容    //$data是字符串格式    file_put_contents($filename,'this is a test');    $res=file_get_contents($filename);    print_r($res);//this is a test    echo "\n";    //如果不想覆盖之前的内容,可以先把文件中读取出来,接着再来写入     $string=file_get_contents($filename);     $data=$string.'this is a test';     file_put_contents($filename,$data);     $res=file_get_contents($filename);     print_r($res);//this is a testthis is a test    //如果文件不存在,file_put_contents()会创建这个文件    $filename='aaa.txt';     $data=[       ['a','b','c'],       ['d','e','f']     ];     file_put_contents($filename,$data);         //数组或者对象序列化之后写入文件     $data=['a','b','c'];     $data=rialize($data);     file_put_contents($filename,$data);     $res=file_get_contents($filename);     print_r(unrialize($res));    //(    //[0] => a    //[1] => b    //[2] => c    //)    // 将数组或者对象转换成json之后写入文件     $data=[       ['a','b','c'],       ['d','e','f']     ];     $data=json_encode($data);     file_put_contents($filename,$data);     $res=json_decode(file_get_contents($filename));     print_r($res);    //    //array    //(    //    [0] => array    //    (    //        [0] => a    //        [1] => b    //[2] => c    //        )    //    //    [1] => array    //(    //    [0] => d    //    [1] => e    //[2] => f    //        )    //    //)

常用函数封装:

【文件常用操作函数封装】

    /**     * 创建文件操作     * @method create_file     * @param  string      $filename 文件名     * @return boolean                true|fal     */    function create_file(string $filename){      //检测文件是否存在,不存在则创建      if(file_exists($filename)){        return fal;      }      //检测目录是否存在,不存在则创建      if(!file_exists(dirname($filename))){        //创建目录,可以创建多级        mkdir(dirname($filename),0777,true);      }      if(file_put_contents($filename,'')!==fal){        return true;      }      return fal;    }     var_dump(create_file('2.txt'));//bool(true)     var_dump(create_file('a/4.txt'));//bool(true)    /**     * 删除文件操作     * @method del_file     * @param  string   $filename 文件名     * @return boolean             true|fal     */    function del_file(string $filename){      //检测删除的文件是否存在,并且是否有权限操作      if(!file_exists($filename)||!is_writable($filename)){        return fal;      }      if(unlink($filename)){        return true;      }      return fal;    }     var_dump(del_file('a/3.txt'));//bool(fal)    /**     * 拷贝文件操作     * @method copy_file     * @param  string    $filename 文件名     * @param  string    $dest     指定目录     * @return boolean              true|fal     */    function copy_file(string $filename,string $dest){      //检测$dest是否是目标并且这个目录是否存在,不存在则创建      if(!is_dir($dest)){        mkdir($dest,0777,true);      }      $destname=$dest.directory_parator.baname($filename);      //检测目标路径下是否存在同名文件      if(file_exists($destname)){        return fal;      }      //拷贝文件      if(copy($filename,$destname)){        return true;      }      return fal;    }    var_dump(copy_file('2.txt','a'));//bool(true)    /**     * 重命名操作     * @method rename_file     * @param  string      $oldname 原文件     * @param  string      $newname 新文件名     * @return boolean               true|fal     */    function rename_file(string $oldname,string $newname){      //检测原文件并且存在      if(!is_file($oldname)){        return fal;      }      //得到原文件所在的路径      $path=dirname($oldname);      $destname=$path.directory_parator.$newname;      if(is_file($destname)){        return fal;      }      if(rename($oldname,$newname)){        return true;      }      return fal;    }    // var_dump(rename_file('2.txt','333.txt'));    /**     * 剪切文件操作     * @method cut_file     * @param  string   $filename 原文件     * @param  string   $dest     目标路径     * @return boolean             true|fal     */    function cut_file(string $filename,string $dest){      if(!is_file($filename)){        return fal;      }      if(!is_dir($dest)){        mkdir($dest,0777,true);      }      $destname=$dest.directory_parator.baname($filename);      if(is_file($destname)){        return fal;      }      if(rename($filename,$destname)){        return true;      }      return fal;    }     var_dump(cut_file('333.txt','a'));     var_dump(cut_file('22.txt','a'));

【文件信息相关函数封装】

    /**     * 返回文件信息     * @method get_file_info     * @param  string        $filename 文件名     * @return mixed                  文件信息相关数组|fal     */    function get_file_info(string $filename){      if(!is_file($filename)||!is_readable($filename)){        return fal;      }      return [        'atime'=>date("y-m-d h:i:s",fileatime($filename)),        'mtime'=>date("y-m-d h:i:s",filemtime($filename)),        'ctime'=>date("y-m-d h:i:s",filectime($filename)),        'size'=>trans_byte(filesize($filename)),        'type'=>filetype($filename)      ];    }    var_dump(get_file_info('22.txt'));    /**     * 字节单位转换的函数     * @method trans_byte     * @param  int        $byte      字节     * @param  integer    $precision 默认精度,保留小数点后2位     * @return string                转换之后的字符串     */    function trans_byte(int $byte,int $precision=2){      $kb=1024;      $mb=1024*$kb;      $gb=1024*$mb;      $tb=1024*$gb;      if($byte<$kb){        return $byte.'b';      }elif($byte<$mb){        return round($byte/$kb,$precision).'kb';      }elif($byte<$gb){        return round($byte/$mb,$precision).'mb';      }elif($byte<$tb){        return round($byte/$gb,$precision).'gb';      }el{        return round($byte/$tb,$precision).'tb';      }    }    var_dump(trans_byte(12345678));//string(7) "11.77mb"

【文件读写函数封装】

    /**     * 读取文件内容,返回字符串     * @method read_file     * @param  string    $filename 文件名     * @return mixed              文件内容|fal     */    function read_file(string $filename){      //检测是否是一个文件并且文件已存在      if(is_file($filename) && is_readable($filename)){        return file_get_contents($filename);      }      return fal;    }    var_dump(read_file('232.txt'));//bool(fal)    /**     * 读取文件中的内容到数组中     * @method read_file_array     * @param  string          $filename         文件名     * @param  boolean         $skip_empty_lines 是否过滤空行     * @return mixed                            array|fal     */    function read_file_array(string $filename,bool $skip_empty_lines=fal){      if(is_file($filename)&&is_readable($filename)){        if($skip_empty_lines){          return file($filename,file_ignore_new_lines|file_skip_empty_lines);        }el{          return file($filename);        }      }      return fal;    }    var_dump(read_file_array('22.txt',true));    /**     * 向文件中写入内容     * @method write_file     * @param  string     $filename 文件名     * @param  mixed      $data     数据,数组和对象需要处理     * @return boolean               true|fal     */    function write_file(string $filename,$data){      $dirname=dirname($filename);      //检测目标路径是否存在      if(!file_exists($dirname)){        mkdir($dirname,0777,true);      }      //判断内容是否是数组或者对象      if(is_array($data)||is_object($data)){        //序列化数据        $data=rialize($data);      }      //向文件中写入内容      if(file_put_contents($filename,$data)!==fal){        return true;      }el{        return fal;      }    }    var_dump(write_file('c/1.txt',['a','b','c']));    /**     * 向文件中写入内容,之前内容不清空     * @method write_file1     * @param  string      $filename  文件名     * @param  mixed       $data      数据     * @param  boolean     $clearflag 是否清空文件     * @r各拉丹冬峰eturn boolean                 true|fal     */    function write_file1(string $filename,$data,bool $clearflag=fal){      $dirname=dirname($filename);      //检测目标路径是否存在      if(!file_exists($dirname)){        mkdir($dirname,0777,true);      }      //检测文件是否存在并且可读      if(is_file($filename)&&is_readable($filename)){        //读取文件内容,之后和新写入的内容拼装到一起        if(filesize($filename)>0){          $srcdata=file_get_contents($filename);        }      }      //判断内容是否是数组或者对象      if(is_array($data)||is_object($data)){        //序列化数据        $data=rialize($data);      }      //拼装到一起      $data=$srcdata.$data;      //向文件中写入内容      if(file_put_contents($filename,$data)!==fal){        return true;      }el{        return fal;      }    }    var_dump(write_file1('22.txt','hello world'));    /**     * 截断文件到指定大小     * @method truncate_file     * @param  string        $filename 文件名     * @param  int           $length   长度     * @return boolean                 true|fal     */    function truncate_file(string $filename,int $length){      //检测是否是文件      if(is_file($filename)&&is_writable($filename)){        $handle=fopen($filename,'r+');        $length=$length<0?0:$length;        ftruncate($handle,$length);        fclo(天生皮肤黑怎么快速美白$handle);        return true;      }      return fal;    }    var_dump(truncate_file('22.txt',2));

【文件下载函数封装】

    /**     * 下载文件     * @method down_file     * @param  string    $filename     文件名     * @param  array     $allowdownext 允许下载的文件类型     * @return void     */    function down_file(string $filename,array $allowdownext=array('jpeg','jpg','png','gif','txt','html','php','rar','zip')){      //检测下载文件是否存在,并且可读      if(!is_file($filename)||!is_readable($filename)){        return fal;      }      //检测文件类型是否允许下载      $ext=strtolower(pathinfo($filename,pathinfo_extension));      if(!in_array($ext,$allowdownext)){        return fal;      }      //通过header()发送头信息      //告诉浏览器输出的是字节流      header('content-type:application/octet-stream');      //告诉浏览器返回的文件大小是按照字节进行计算的      header('accept-ranges: bytes');      //告诉浏览器返回的文件大小      header('accept-length: '.filesize($filename));      //告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称      header('content-disposition: attachment;filename=king_'.baname($filename));      //读取文件中的内容      readfile($filename);      exit;    }规定每次读取文件的字节数为1024字节,直接输出数据    /**     * 下载文件     * @method down_file     * @param  string    $filename     文件名     * @param  array     $allowdownext 允许下载的文件类型     * @return void     */    function down_file1(string $filename,array $allowdownext=array('jpeg','jpg','png','gif','txt','html','php','rar','zip')){      //检测下载文件是否存在,并且可读      if(!is_file($filename)||!is_readable($filename)){        return fal;      }      //检测文件类型是否允许下载      $ext=strtolower(pathinfo($filename,pathinfo_extension));      if(!in_array($ext,$allowdownext)){        return fal;      }      //通过header()发送头信息      //告诉浏览器输出的是字节流      header('content-type:application/octet-stream');      //告诉浏览器返回的文件大小是按照字节进行计算的      header('accept-ranges: bytes');      $filesize=filesize($filename);      //告诉浏览器返回的文件大小      header('accept-length: '.$filesize);      //告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称      header('content-disposition: attachment;filename=king_'.baname($filename));      //读取文件中的内容      //规定每次读取文件的字节数为1024字节,直接输出数据      $read_buffer=1024;      $sum_buffer=0;      $handle=fopen($filename,'rb');      while(!feof($handle) && $sum_buffer<$filesize){        echo fread($handle,$read_buffer);        $sum_buffer+=$read_buffer;      }      fclo($handle);      exit;    }    //在具体页面调用时    require_once 'file.func.php';    $filename=$_get['filename'];    down_file1($filename);

【文件上传函数封装】

    /**     * 单文件上传     * @method upload_file     * @param  array       $fileinfo   上传文件的信息,是一个数组     * @param  string      $uploadpath 文件上传默认路径     * @param  boolean     $imageflag  是否检测真实图片     * @param  array       $allowext   允许上传的文件类型     * @return mixed                  成功返回文件最终保存路径及名称,失败返回fal     */    function upload_file(array $fileinfo,string $uploadpath='./uploads',bool $imageflag=true,array $allowext=array('jpeg','jpg','png','gif'),int $maxsize=2097152){      define('upload_errs',[        'upload_max_filesize'=>'超过了php配置文件中upload_max_filesize选项的值',        'form_max_size'=>'超过了表单max_file_size选项的值',        'upload_file_partial'=>'文件部分被上传',        'no_upload_file_lect'=>'没有选择上传文件',        'upload_system_error'=>'系统错误',        'no_allow_ext'=>'非法文件类型',        'exceed_max_size'=>'超出允许上传的最大值',        'not_true_image'=>'文件不是真实图片',        'not_http_post'=>'文件不是通过http post方式上传上来的',        'move_error'=>'文件移动失败'      ]);      //检测是否上传是否有错误      if($fileinfo['error']===upload_err_ok){        //检测上传文件类型        $ext=strtolower(pathinfo($fileinfo['name'],pathinfo_extension));        if(!in_array($ext,$allowext)){          echo  upload_errs['no_allow_ext'];          return fal;        }        //检测上传文件大小是否符合规范        if($fileinfo['size']>$maxsize){          echo upload_errs['exceed_max_size'];          return fal;        }        //检测是否是真实图片        if($imageflag){          if(@!getimagesize($fileinfo['tmp_name'])){            echo upload_errs['not_true_image'];            return fal;          }        }        //检测文件是否通过http post方式上传上来的        if(!is_uploaded_file($fileinfo['tmp_name'])){          return upload_errs['not_http_post'];        }        //检测目标目录是否存在,不存在则创建        if(!is_dir($uploadpath)){          mkdir($uploadpath,0777,true);        }        //生成唯一文件名,防止重名产生覆盖        $uniname=md5(uniqid(microtime(true),true)).'.'.$ext;        $dest=$uploadpath.directory_parator.$uniname;        //移动文件        if(@!move_uploaded_file($fileinfo['tmp_name'],$dest)){          echo upload_errs['move_error'];          return fal;        }        echo '文件上传成功';        return $dest;      }el{        switch($fileinfo['error']){          ca 1:          // $mes='超过了php配置文件中upload_max_filesize选项的值';          $mes=upload_errs['upload_max_filesize'];          break;          ca 2:          $mes=upload_errs['form_max_size'];          break;          ca 3:          $mes=uplaod_errs['upload_file_partial'];          break;          ca 4:          $mes=upload_errs['no_upload_file_lect'];          break;          ca 6:          ca 7:          ca 8:          $mes=uplaod_errs['upload_system_error'];          break;        }        echo $mes;        return fal;      }    }    //在具体页面调用时    require_once 'file.func.php';    $fileinfo=$_files['myfile'];    var_dump(upload_file($fileinfo));

【文件压缩与解压缩函数封装】

    /**     * 压缩单个文件     * @method zip_file     * @param  string   $filename 文件名     * @return boole越南语专业an             true|fal     */    function zip_file(string $filename){      if(!is_file($filename)){        return fal;      }      $zip=new ziparchive();      $zipname=baname($filename).'.zip';      //打开指定压缩包,不存在则创建,存在则覆盖      if($zip->open($zipname,ziparchive::create|ziparchive::overwrite)){        //将文件添加到压缩包中        if($zip->addfile($filename)){          $zip->clo();          @unlink($filename);          return true;        }el{          return fal;        }      }el{        return fal;      }    }    // var_dump(zip_file('22.txt'));    // func_get_args    // test1.zip    /**     * 多文件压缩     * @method zip_files     * @param  string    $zipname 压缩包的名称,.zip结尾     * @param  string     $files   需要压缩文件名,可以是多个     * @return boolean             true|fal     */    function zip_files(string $zipname,...$files){      //检测压缩包名称是否正确      $zipext=strtolower(pathinfo($zipname,pathinfo_extension));      if('zip'!==$zipext){        return fal;      }      $zip=new ziparchive();      if($zip->open($zipname,ziparchive::create|ziparchive::overwrite)){        foreach($files as $file){          if(is_file($file)){            $zip->addfile($file);          }        }        $zip->clo();        return true;      }el{        return fal;      }    }    // var_dump(zip_files('test1.zip','22.txt'));    // var_dump(zip_files('test2.zip','doupload.php','download.html','upload.html'));        /**         * 解压缩         * @method unzip_file         * @param  string     $zipname 压缩包名称         * @param  string     $dest    解压到指定目录         * @return boolean              true|fal         */        function unzip_file(string $zipname,string $dest){          //检测要解压压缩包是否存在          if(!is_file($zipname)){            return fal;          }          //检测目标路径是否存在          if(!is_dir($dest)){            mkdir($dest,0777,true);          }          $zip=new ziparchive();          if($zip->open($zipname)){            $zip->extractto($dest);            $zip->clo();            return true;          }el{            return fal;          }        }        // var_dump(unzip_file('test2.zip','a'));

$_files 参数详解:
$_files[“file”][“name”] – 被上传文件的名称
$_files[“file”][“type”] – 被上传文件的类型
$_files[“file”][“size”] – 被上传文件的大小,以字节计
$_files[“file”][“tmp_name”] – 存储在服务器的文件的临时副本的名称
$_files[“file”][“error”] – 由文件上传导致的错误代码

$_files[“file”][“error”]中的[“error”]值情况:
upload_err_ok
0:没有错误发生,文件上传成功
upload_err_ini_size
1:上传的文件超过了 php.ini 中 upload_max_filesize(默认情况为 2m) 选项限制的值
upload_err_form_size
2:上传文件的大小超过了 html 表单中 max_file_size 选项指定的值
upload_err_partial
3:文件只有部分被上传
upload_err_no_file
4:没有文件被上传
5:传文件大小为 0

本文发布于:2023-04-08 02:51:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/e58a63e4d662bce1bff425e4ef4e3403.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php文件操作(最后进行文件常用函数封装).doc

本文 PDF 下载地址:php文件操作(最后进行文件常用函数封装).pdf

标签:文件   文件名   内容   不存在
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图