• php基础知识【函数】(2)文件file


    一、路径

     1、dirname -- 返回路径中的目录部分
          $path = "/etc/passwd";
          $file = dirname($path); // "/etc"

     2、basename -- 返回路径中的文件名部分
         $path = "/home/httpd/html/index.php";
         $file = basename($path);        // index.php
         $file = basename($path,".php"); // index

     3、pathinfo -- 以数组返回文件路径的信息,包括:dirname,basename 和 extension
         $path_parts = pathinfo("/www/htdocs/index.html");
         echo $path_parts["dirname"] . " ";//  /www/htdocs
         echo $path_parts["basename"] . " ";//  index.html
         echo $path_parts["extension"] . " ";// html
      
     4、glob -- 寻找与模式匹配的文件路径,返回一个包含有匹配文件/目录的数组
         foreach (glob("*.txt") as $filename) {
             echo "$filename size " . filesize($filename) . " ";//funclist.txt size 44686
         }
     5、realpath -- 返回规范化的绝对路径名

    二、文件读写

     1、fopen -- 打开文件或者 URL
     2、fread -- 读取文件,在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。  
     3、fwrite -- 写入文件,
     4、fclose -- 关闭一个已打开的文件指针       

      $filename = "/usr/local/something.txt";
      $handle = fopen($filename, "rb");
      $contents = fread($handle, filesize ($filename));
      fwrite($handle, 534);
      fclose($handle);
       'r' 只读,将文件指针指向文件头。 
       'r+' 读写,将文件指针指向文件头。 
       'w' 写入,将文件指针指向文件头并将文件大小截为零
       'w+' 读写,将文件指针指向文件头并将文件大小截为零 
       'a' 写入,将文件指针指向文件末尾 
       'a+' 读写,将文件指针指向文件末尾 
       'x' 创建并以写入方式打开,将文件指针指向文件头
       'x+' 创建并以读写方式打开,将文件指针指向文件头

     5、file -- 把整个文件读入一个数组中
           $html = implode('', file ('http://www.example.com/'));
     6、file_get_contents -- 将整个文件读入一个字符串 
     7、file_put_contents(filename,data[,flags[,context]])--将一个字符串写入文件

     三、文件

     1、file_exists -- 检查文件或目录是否存在
           $filename = '/path/to/foo.txt';
           if (file_exists($filename)){}
     2、fileatime -- 取得文件的上次访问时间
           date("F d Y H:i:s.", fileatime($filename));
     3、filectime -- 返回文件上次 inode 被修改的时间,以时间戳的方式返
           date("F d Y H:i:s.", filectime($filename)       
     4、filemtime -- 取得文件修改时间
          date ("F d Y H:i:s.", filemtime($filename));
     5、fileinode--返回文件的 inode 节点号
     6、filegroup -- 取得文件的组      
     7、fileowner -- 取得文件的所有者
     8、fileperms -- 取得文件的权限
     9、filesize -- 取得文件大小
     10、filetype -- 取得文件类型
     11、readfile -- 读入一个文件并写入到输出缓冲。返回从文件中读入的字节数。
     12、rename -- 重命名一个文件或目录
     13、unlink -- 删除文件  【unset删除变量】
     14、move_uploaded_file -- 将上传的文件移动到新位置平[如果目标文件已经存在,将会被覆盖] 
     15、copy --将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE
           $file = 'example.txt';
           $newfile = 'example.txt.bak'; 
           if (!copy($file, $newfile)) {echo "failed to copy $file... ";}

    四、目录

     1、mkdir -- 新建目录
     2、rmdir -- 删除目录,该目录必须是空的,而且要有相应的权限。
     3、chdir -- 改变目录
     4、chroot -- 改变根目录
     5、closedir -- 关闭目录句柄
     6、getcwd -- 取得当前工作目录
     7、opendir -- 打开目录句柄
     8、readdir -- 从目录句柄中读取条目
     9、rewinddir -- 倒回目录句柄 
     10、disk_free_space -- 返回目录中的可用空间  
        $df = disk_free_space("/");// $df 包含根目录下可用的字节数  
        disk_free_space("C:");//在 Windows 下  
     11、disk_total_space -- 返回一个目录的磁盘总大小  
        $df = disk_total_space("/");// $df 包含 "/" 目录的磁盘大小  
        disk_total_space("C:");//在 Windows 下
     12、scandir -- 以数组列出指定路径中的文件和目录

      
    五、判断

     1、is_dir             -- 判断给定文件名是否是一个目录
     2、is_executable     -- 判断给定文件名是否可执行
     3、is_file            -- 判断给定文件名是否为一个正常的文件
     4、is_link            -- 判断给定文件名是否为一个符号连接
     5、is_readable        -- 判断给定文件名是否可读
     6、is_uploaded_file  -- 判断文件是否是通过 HTTP POST 上传的
     7、is_writable       -- 判断给定的文件名是否可写  

    六、连接  

     1、link -- 建立一个硬连接
     2、linkinfo -- 获取一个连接的信息
     3、readlink -- 返回符号连接指向的目标
     4、symlink -- 建立符号连接 

    七、指针

     1、feof -- 测试文件指针是否到了文件结束的位置
                文件指针必须有效,且必须指向一个由fopen成功打开但还没有被 fclose关闭的文件。
     2、fgetc -- 从文件指针中读取字符
     3、fgetcsv -- 从文件指针中读入一行并解析 CSV 字段
     4、fgets -- 从文件指针中读取一行
     5、fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记
     6、fpassthru -- 输出文件指针处的所有剩余数据
     7、fseek -- 在文件指针中定位
     8、fstat -- 通过已打开的文件指针取得文件信息
     9、ftell -- 返回文件指针读/写的位置
     10、pclose -- 关闭进程文件指针
     11、popen -- 打开进程文件指针
     12、rewind -- 倒回文件指针的位置,将 handle 的文件位置指针设为文件流的开头。


    八、其他

     1、fscanf -- 从文件中格式化输入
     2、ftruncate -- 将文件截断到给定的长度 
     3、stat(filename) -- 获取由 filename 指定的文件的统计信息。如果 filename 是符号连接,则统计信息是关于被连接文件本身的
         lstat -- 给出一个文件或符号连接的信息      

     4、tempnam -- 在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在,会在系统临时目录中生成一个文件,并返回其文件名。
        $tmpfname = tempnam("/tmp", "FOO");
        $handle = fopen($tmpfname, "w");
        fwrite($handle, "writing to tempfile");
        fclose($handle);
        // do here something
        unlink($tmpfname);

     5、tmpfile -- 以读写(w+)模式建一个临时文件,文件会在关闭后(用 fclose())或当脚本结束后自动被删除。
         $temp = tmpfile();
         fwrite($temp, "writing to tempfile");
         fseek($temp, 0);
         echo fread($temp, 1024);
         fclose($temp); // this removes the file

     6、touch(filename[,time[,atime]]) -- 设定文件的访问和修改时间
               如果time为空,则使用当前时间。如果指定atime,则给定文件的访问时间会被设为 atime。如果文件不存在,则会被创建。

     7、umask -- 改变当前的权限,将 PHP 的 umask 设定为 mask & 0777 并返回原来的 umask
     
     8、fflush -- 强制将所有缓冲的输出写入 handle 文件句柄所指向的资源

     9、parse_ini_file-- 解析一个配置文件

     

    九、文件上传

     1、配置php.ini

      file_uploads = On           //是否允许通过HTTP上传文件,默认允许
      ;upload_tmp_dir =           //文件上传时临时存放目录,如果没指定则使用系统默认
      upload_max_filesize = 2M    //允许上传文件大小的最大值,必须小于max_file_uploads
      max_file_uploads = 20
      max_execution_time = 30     //上传时间为30s,超过就会自动中断
      max_input_time = 60
      ;max_input_nesting_level=64
      memory_limit = 128M
      post_max_size=;             //设定post数据所允许的最大数据量,该值必须大于upload_max_filesize

     2、表单:  提交方式为post,form必须加上属性enctype="multipart/form-data"

     3、获取上传文件属性

      (1)$_FILES['filename']['name']      客户端机器文件的原名称
      (2)$_FILES['filename']['type']      文件的类型
      (3)$_FILES['filename']['size']      文件的大小
      (4)$_FILES['filename']['tmp_name']  文件被上传后再服务端储存的临时文件名
      (5)$_FILES['filename']['error']     错误代码   
        0---文件上传成功
        1---上传文件超过upload_max_filesize限制的值
        2---文件上传超过表单中MAX_FILE_SIZE限制的值
        3---文件只有部分被上传
        4---没有文件被上传
        6---找不到临时文件夹
        7---文件写入失败

     4、<input type="hidden" name="MAX_FILE_SIZE" value="30000">
            该隐藏字段必须放在文件输入字段之前,其值为接受文件的最大尺寸,这是对浏览器的一种建议,PHP也会检查此项,它可以避免用户在花时间等待上传
            大文件之后才发现文件上传失败的麻烦
     5、move_uploaded_file()--将上传文件从临时目录移动到目标目录,该函数会自动检查文件是否是通过HTTP POST机制上传的 
     6、is_uploaded_file()--判断文件是否通过HTTP POST上传

    我发现了一个奇怪的现象,就是经常赞我的人,特别是支持我的人,都在不久后做成了如下事情:1、恋爱成功了;2、生意谈成了;3、事业有成了;4、升官发财了;5、心情舒畅了;6、家庭和睦了;7、身体健康了;8、万事如意了
  • 相关阅读:
    gdb常用命令
    linux退格键处理
    JavaScript的MVC模式(转载)
    linux编程 -- 网络编程(一)
    数组操作-将下标变成从0开始的连续数字
    很多学ThinkPHP的新手会遇到的问题
    PHP 统计一维数组value相同的元素的个数num,并将其转化为下标为数字,值是value和num的二维数组
    MySQL数据库使某个不是主键的字段唯一
    利用JS实现表单的自动提交
    thinkphp 使每个模板页都包含一个header文件和一个footer文件
  • 原文地址:https://www.cnblogs.com/zhuyibo/p/3847655.html
Copyright © 2020-2023  润新知