zoukankan      html  css  js  c++  java
  • PHP文件基本操作及文件的上传和下载

     此篇实现了PHP对文件的系列操作,包括文件的读写和处理、文件的上传、文件的下载。

    1、简单写文件:file_put_contents("文件名","数据字符串");//写数据到文件

    2、简单读文件:$内容1=file_get_contents(“文件名”);//从文件中读取内容到内容1中

                          //file_put_contents("ww.txt",file_get_contents("http://localhost:8080/ main.php"));//获取网页源码

    3、读文件并输出:readfile("ww.txt");//也可传递URL,内容自接输出无需加echo等

    4、读文件以行为单位存入数组:$文件行数组=file(“文件名");

    5、取目录名:dirname($文件路径字符串)//返回目录字符串

    6、获取文件名:basename("字符串");//获取文件名

    7、创建目录:mkdir(“目录名字符串“)//创建的目录必须是一个,存在会出现错误//第二个参数如:0777

    8、删除空目录:rmdir("空目录名");//返回bool

    9、创建文件:touch("文件名")//返回bool

    10、删除文件:unlink("文件名或文件名路径");

    11、检查文件或目录是否存在:file_exists(“文件字符串”)//返回bool

    12、基本判断(内容必须存在):判断是否是目录【is_dir(“字符串”)】、 判断是否是文件【is_file(“字符串”)】

    13、获取文件修改时间:filemtime("文件字符串");//返回时间戳

    14、获取文件大小:filesize("文件字符串");//返回字节数

    15、文件重命名和移动:rename(“原文件”,"新文件");//返回bool

    16、文件复制:copy("原文件","新文件");//返回bool

    17、文件权限:【is_readable()】、【is_writable()】【is_executable()】//读 写 执行

    18、目录分隔符:DIRECTORY_SEPARATOR;//在liux系统为“/”,在win下为“”

    19、换行符:PHP_EOL//在liux系统为“ ”,在win下位“ ”

    20、获取磁盘总大小:echo disk_total_space("C:");//返回字节数

    21、获取磁盘可用空间总大小:echo disk_free_space("C:");//返回字节数

            echo "C磁盘总大小:".round(disk_total_space("C:")/pow(2,30),2)."G";//打印以G为单位大小

    22、目录:当前目录(点加斜杠)【 . / 】,上级目录(点点加斜杠)【 . . /

    23、打印目录下文件:print_r(glob("dirdong/*php"));//获取文件夹dirdong下的php文件,无到子目录

    24、遍历文件夹:

    1 $dir=opendir("./dirdong");//打开文件资源
    2 while($fi=readdir($dir)){//循环
    3     if(is_dir("./dirdong/".$fi)) echo "目录:".$fi."<br/>";
    4     if(is_file("./dirdong/".$fi)) echo "文件:".$fi."<br/>";
    5 }    
    6 closedir($dir);//关闭文件资源

    25、利用文件指针的方式读写文件:

     1 /*打开模式:
     2 
     3 r   只读方式,文件指针处于开始
     4 r+  读写方式,文件指针处于开始,文件无报错
     5 w   只写方式,文件指针处于开始
     6 w+  读写方式,文件指针处于开始,文件无则创建
     7 a   写追加方式,文件指针处于末尾,文件无则创建
     8 a+  读写方式,文件指针处于末尾,文件无则创建
     9 rb wb 二进制读写方式
    10 rt wt 文本方式读写方式
    11 
    12 */
    13 $f=fopen("ww.txt","r+");//打开文件 ww.txt 资源
    14 
    15 fseek($f,3);//从前往后移动文件指针3个字节
    16 
    17 fseek($f,-2,SEEK_END);//从后往前移动文件指针2个字节
    18 
    19 rewind($f);//将指针数组移动至开头
    20     
    21 echo ftell($f);//查看文件指针位置
    22     
    23 //循环读取文件内容
    24 //while(!feof($f)){//判断文件结尾
    25 //echo fgetc($f);//只读取一个字节    
    26 //}
    27 
    28 //echo fgets($f);//一次读一行
    29     
    30 //echo fread($f,2);//读取两个字节
    31     
    32     
    33 //fwrite($f,"32w东小东
    xxx");//写内容
    34     
    35 fclose($f);//关闭文件资源

    26、文件锁,防止同时操作文件造成数据絮乱:

    1 flock($f,LOCK_EX);//设置写锁,返回bool
    2 flock($f,LOCK_SH);//设置读锁,返回bool
    3 //文件读写操作
    4 flock($f,LOCK_UN);//释放锁,返回bool

    27、文件上传到服务器:

    HTML:

    1   <form action="wan.php" method="post" enctype="multipart/form-data">
    2      
    3      <input type="text" name="namexx">
    4       <br>
    5      <input type="file" name="filexx">
    6       <br/>
    7      <input type="submit" value="东小东上传">    
    8   </form>

    PHP:

     1 //error_reporting("E_ALL & ~ E_NOTICE");
     2 echo '<meta charset="utf-8">';//解决乱码问题
     3 //post数据,无文件数据
     4 print_r($_POST);
     5 //文件数据 名字,类型,零时目录,大小等
     6 print_r($_FILES["filexx"]);
     7 //设置保存地址
     8 $filepath="img/".$_POST["namexx"];
     9 //拷贝零时文件到保存目录
    10 if(move_uploaded_file($_FILES["filexx"]["tmp_name"],$filepath)){
    11     echo "上传成功";
    12 }else{
    13     echo "上传失败";
    14 }

    文件上传错误值:

    28、多文件上传基本思路:利用文件数组

    1 <input type="file" name="filexx[]">
    2 <input type="file" name="filexx[]">

     29、文件下载:通过返回头告诉客户端此为附件即可

    1 //告诉浏览器此文件为附件(可下载,不用浏览器解析)
    2 header("Content-Disposition:attachment;filename=任意文件名1");
    3 //输出内容
    4 readfile("任意文件名1");

  • 相关阅读:
    effective c++ 条款10 让operator= 返回*this的引用
    基于vs2008的opengl开发环境的配置
    effective c++ 条款13 以对象管理资源
    effective C++ 条款06如果你不想让编译器为你生成函数就应该明确拒绝
    effective c++条款07为多态基类声明为virtual析构函数
    effective c++条款08别让异常逃离析构函数
    effective c++条款11 在operator=中处理“自我赋值”
    ubuntu 下的截图工具
    effective c++ 条款12 赋值对象时勿忘其每一个成员
    [linux 安装]修改centos的yum源
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/10066333.html
Copyright © 2011-2022 走看看