一、路径

 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"] . "\n";//  /www/htdocs
     echo $path_parts["basename"] . "\n";//  index.html
     echo $path_parts["extension"] . "\n";// html
  
 4、glob -- 寻找与模式匹配的文件路径,返回一个包含有匹配文件/目录的数组
     foreach (glob("*.txt") as $filename) {
         echo "$filename size " . filesize($filename) . "\n";//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...\n";}

四、目录

 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. jQuery checkbox的全选与反选
  2. Student elective system (VF)
  3. Android之listview &amp;&amp; adapter
  4. 解决 504 Gateway Time-out和502 Bad Gateway(nginx)
  5. 【WEB前端经验之谈】时间一年半,或沉淀、或从零开始。
  6. 为tomcat 安装 native 和配置apr
  7. windows系统调用 线程 启动与挂起
  8. 264. Ugly Number II
  9. 使用git自动将子工程发布到百度开放云上
  10. JixiPix 各种图像软件,很不错的说,还有affinity designer
  11. web.xml(spring/spring mvc/hibernate)
  12. PHP关于数组缓存JSON、serialize、var_export的说明
  13. vue组件创建的三种方式
  14. [LeetCode] Most Common Word 最常见的单词
  15. NOIP2018爆零退役滚粗记
  16. centos7 redmine安装过程
  17. 《Python》进程收尾线程初识
  18. tf.nn.conv2d
  19. 学习 MySQL中导入 导出CSV
  20. 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞

热门文章

  1. msql修改字符
  2. nyoj 36 最长公共子序列【LCS模板】
  3. iOS 应用程序本地化
  4. javascript 的点击复制事件
  5. UVA 10985 - Rings&#39;n&#39;Ropes(floyd)
  6. Winform 中 DesignMode 返回值不正确的问题。
  7. android:ImageView 和ImageButton的区别
  8. nodejs 简单对mongodb 操作
  9. clock_gettime测代码运行时间
  10. Scrum 学习笔记