一、路径

 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上传

php基础知识【函数】(2)文件file的更多相关文章

  1. PHP面试 PHP基础知识 七(文件及目录处理)

    文件操作 文件打开函数 fopen()函数 //用来打开一个文件 打开时需要指定打开模式 语法:fopen( filename, mode, include_path, context); filen ...

  2. ruby 基础知识三 读写文件

    1.File 中参数的含义 r 只读模式.文件指针被放置在文件的开头.这是默认模式. r+ 读写模式.文件指针被放置在文件的开头. w 只写模式.如果文件存在,则重写文件.如果文件不存在,则创建一个新 ...

  3. JAVA核心技术I---JAVA基础知识(Jar文件导入导出)

    一:Jar初识 (一)定义 同c++中的DLL一样 jar文件,一种扩展名为jar的文件,是Java所特有的一种文件格式,用于可执行程序文件的传播. jar文件实际上是一组class文件的压缩包 (二 ...

  4. Android基础知识之Manifest文件的组织结构

    原文:http://android.eoe.cn/topic/android_sdk 是AndroidManifest.xml文件中的根标签,她必须包含一个标签和指定的xmlns:android. p ...

  5. ASP.NET Core 2.2 基础知识(三) 静态文件

    什么是静态文件? HTML,CSS,JS,图片等都叫做静态文件. 要想提供静态文件给客户端,需要注册静态文件中间件. 我们先分别添加一个 WebAPI 项目,一个 Razor 视图项目,比较两个项目的 ...

  6. javascript基础知识-函数

    1.javascript中函数有两种定义方式: 函数语句定义和表达式定义 //函数有定义 function test(){ console.log("This is a function&q ...

  7. html form一点基础知识,实现文件上传

    form用于提交文件需要修改其entype属性. enctype属性:规定在发送表单数据之前如何对其进行编码. 默认情况,enctype的编码格式是application/x-www-form-url ...

  8. javascript基础知识--函数定义

    函数声明式 function funname( 参数 ){ ...执行的代码 } 声明式的函数并不会马上执行,需要我们调用才会执行:funname(); * 分号是用来分隔可执行JavaScript语 ...

  9. C#基础知识-函数的定义和调用(五)

    函数也可以称为方法,可以很方便的把一些行为封装到函数里面,当调用这一函数时会把函数块里面的代码按照顺序执行,方法可以有多种形式,有无参数,有无返回值等. 1. 函数的定义   函数定义的基本格式: s ...

  10. 【shell编程】之基础知识-函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...

随机推荐

  1. Self-numbers 2 - SGU 108

    翻译:引自 http://www.cnblogs.com/yylogo/archive/2011/06/09/SGU-108.html 在1949年印度的数学假D.R. Kaprekar发现了一种叫做 ...

  2. Treasure Hunt - POJ 1066(线段相交判断)

    题目大意:在一个正方形的迷宫里有一些交错墙,墙的两端都在迷宫的边缘墙上面,现在得知迷宫的某个位置有一个宝藏,所以需要砸开墙来获取宝藏(只能砸一段墙的中点),问最少要砸开几面墙.   分析:这个题意刚开 ...

  3. 贪心+容器 hdu4268

    Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this game, ...

  4. UVaLive6039 Uva1668 Let's Go Green

    一开始考虑所有边都是单独的一条路径 然后尽量多的合并 #include<cstdio> #include<cstring> #include<cstdlib> #i ...

  5. 【JAVA - 基础】之反射的原理与应用

    一.反射简介 反射机制指的是程序在运行时能够获取自身的信息.在JAVA中,只要给定类的名字,那么就可以通过反射机制来获取类的所有信息. 1.反射的应用 JDBC编程中的:Class.forName(& ...

  6. 【Android - V】之SwipeRefreshLayout的使用

    SwipeRefreshLayout是Android V4.V7包中的一个控件,是Google给我们提供的一个下拉刷新的布局控件,可以轻松完成下拉刷新. SwipeRefreshLayout的特点是其 ...

  7. rancher 笔记 之 rancher应用中心

    rancher应用中心 rancher 的应用中心 可以 自定义,在 admin -> catlog 中 指定路劲 rancher的应用中心 就是一个git项目 指定git的路劲的时候 填写的是 ...

  8. shell之“>/dev/null 2>&1” 详解(转)

    今天在自己的一个技术群中又被问道了这么一个问题,于是又通俗的解释了一下,做个记录,大家看看解释是否清楚! shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以 ...

  9. libpcap使用

    libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的.今天我们利用它来完成一个我们自己的网络嗅探器(sniffer) 首先先介绍一下本次实验的环境: ...

  10. Objective-C通过联合存储为类增加属性及原理解析

    联合存储实现方式及底层原理解析 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory_tjsd/article/details/9347981 转载请注明出处 ...