文件操作一直是Web程序员头疼的地方,而文件操作在CMS这样的系统中又是必须的。如今,PHP文件操作的函数内容已经非常强大,文件这部分也是学习PHP非常重要的一部分,希望大家不要忽略。这篇文章会简单介绍一下PHP的几个基本文件操作,最后附有PHP文件函数汇总,供大家参考和学习。

1. 打开文件:fopen("文件名","模式");

模式参数:

  1. r:只读,将文件指针指向文件头。
  2. r+:读/写,将文件指针指向文件头。
  3. w:只写,打开并清空文件的内容。如果文件不存在,则创建文件。
  4. w+:读/写,打开并清空文件的内容。如果文件不存在,则创建文件。
  5. a:追加,打开并向文件的末端进行写操作。如果文件不存在,则创建新文件。
  6. a+:读/追加,通过向文件末端写内容,来保持文件内容。

 2. 关闭文件:fclose();
使用文件完毕,要显式的告诉PHP已经使用完文件,例如:

  1. $file=fopen("test.txt","r"); //关闭一个已打开的文件指针
  2. //some code be executed
  3. fclose=($file);

 3. 检测是否已达到文件的末端:feof();

  1. 例如:if(feof($file)){ echo "end of file";}

 4. 逐行读取文件:fgets();
例如:

  1. $file=fopen("test.txt","r");
  2. while(!feof($file)){
  3. echo fgets($file)."< br/>";
  4. }
  5. fclose($file);

 5. 逐字符读取文件:fgetc()

6. 读取任意二进制数据:fread()

7. 判断文件读取的状态
每个文件句柄都有一个文件指针,根据fopen函数的mode参数,文件指针最初位于文件的开头,或者文件的末尾。feof()可以判断文件是否已经到末尾;filesize()函数返回文件的大小。
8. 写入文件和权限判断

  1. fwrite() 函数执行文件写入
  2. is_readable()//判断文件是否可读
  3. is_writeable()//判断文件是否可写
  4. is_writable()//判断文件是否可写
  5. file_exists()//是否存在这个文件
  1. 代码举例:
  2. $filename = 'test.txt';
  3. $somecontent;
  4. // 首先我们要确定文件存在并且可写
  5. if (is_writable($filename)) {
  6. // 在这个例子里,我们将使用添加模式打开$filename, 因此,文件指针将会在文件的开头,那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。
  7.  
  8. if (!$handle = fopen($filename, 'a')) {
  9. echo "不能打开文件 $filename";
  10. exit;
  11. }
  12. // 将$somecontent写入到我们打开的文件中。
  13. if (fwrite($handle, $somecontent) === FALSE) {
  14. echo "不能写入到文件 $filename";
  15. exit;
  16. }
  17.  
  18. echo "成功地将 $somecontent 写入到文件$filename";
  19. fclose($handle);
  20. }
  21.  
  22. else{
  23. echo "文件 $filename 不可写";
  24. }

 9. 将文件读取到一个数组:

$array=file("text.txt"),$array[0]就是第一行文本,依次类推。如果要翻转整个数组,例如:
$arr=array_reverse($array);
则最后一行文本就是$arr[0]

10. 访问目录
目录访问建议使用前向斜线"/",兼容windows和unix系统。主要函数包括:

  1. basename()//返回不包括路径信息的文件名
  2. dirname()//返回文件名的目录部分
  3. realpath()//接受相对路径,返回文件的绝对路径
  4. pathinfo()//提取给定路径的目录名,基本文件名和扩展名
  5. opendir()//打开目录,返回资源句柄
  6. readdir()//读取目录项
  7. rewinddir()//将读取指针返回开头
  8. closedir()//关闭读取句柄
  9. chdir()//改变当前脚本执行期间的当前工作目录
  10. mkdir()//创建目录
  11. rmdir()删除目录

 附:PHP文件函数大全

  1.  
  2. basename 返回路径中的文件名部分
  3. chgrp 改变文件所属的组
  4. chmod 改变文件模式
  5. chown 改变文件的所有者
  6. clearstatcache 清除文件状态缓存
  7. copy 拷贝文件
  8. delete 参见 unlink() unset()
  9. dirname 返回路径中的目录部分
  10. disk_free_space 返回目录中的可用空间
  11. disk_total_space 返回一个目录的磁盘总大小
  12. diskfreespace disk_free_space()的别名
  13. fclose 关闭一个已打开的文件指针
  14. feof 测试文件指针是否到了文件结束的位置
  15. fflush 将缓冲内容输出到文件
  16. fgetc 从文件指针中读取字符
  17. fgetcsv 从文件指针中读入一行并解析 CSV 字段
  18. fgets 从文件指针中读取一行
  19. fgetss 从文件指针中读取一行并过滤掉 HTML 标记
  20. file_exists 检查文件或目录是否存在
  21. file_get_contents 将整个文件读入一个字符串
  22. file_put_contents 将一个字符串写入文件
  23. file 把整个文件读入一个数组中
  24. fileatime 取得文件的上次访问时间
  25. filectime 这个PHP文件函数取得文件的 inode 修改时间
  26. filegroup 取得文件的组
  27. fileinode 取得文件的 inode
  28. filemtime 取得文件修改时间
  29. fileowner 取得文件的所有者
  30. fileperms 取得文件的权限
  31. filesize 取得文件大小
  32. filetype 取得文件类型
  33. flock 轻便的咨询文件锁定
  34. fnmatch 用模式匹配文件名
  35. fopen 打开文件或者 URL
  36. fpassthru 输出文件指针处的所有剩余数据
  37. fputcsv 将行格式化为 CSV 并写入文件指针
  38. fputs fwrite()的别名
  39. fread 读取文件(可安全用于二进制文件)
  40. fscanf 从文件中格式化输入
  41. fseek 在文件指针中定位
  42. fstat 通过已打开的文件指针取得文件信息
  43. ftell 返回文件指针读/写的位置
  44. ftruncate 将文件截断到给定的长度
  45. fwrite 写入文件(可安全用于二进制文件)
  46. glob 寻找与模式匹配的文件路径
  47. is_dir PHP文件函数判断给定文件名是否是一个目录
  48. is_executable 判断给定文件名是否可执行
  49. is_file 判断给定文件名是否为一个正常的文件
  50. is_link 判断给定文件名是否为一个符号连接
  51. is_readable 判断给定文件名是否可读
  52. is_uploaded_file 判断文件是否是通过 HTTP POST 上传的
  53. is_writable 判断给定的文件名是否可写
  54. is_writeable is_writable()的别名
  55. link 建立一个硬连接
  56. linkinfo 获取一个连接的信息
  57. lstat 给出一个文件或符号连接的信息
  58. mkdir 新建目录
  59. move_uploaded_file 将上传的文件移动到新位置
  60. parse_ini_file 解析一个配置文件
  61. pathinfo 返回文件路径的信息
  62. pclose 关闭进程文件指针
  63. popen 打开进程文件指针
  64. readfile 输出一个文件
  65. readlink 返回符号连接指向的目标
  66. realpath 返回规范化的绝对路径名
  67. rename 重命名一个文件或目录
  68. rewind 倒回文件指针的位置
  69. rmdir 删除目录
  70. set_file_buffer stream_set_write_buffer()的别名
  71. stat 给出文件的信息
  72. symlink 建立符号连接
  73. tempnam 建立一个具有唯一文件名的文件
  74. tmpfile 建立一个临时文件
  75. touch 设定文件的访问和修改时间
  76. umask 改变当前的 umask
  77. unlink 删除文件

PHP 关于文件操作的简单介绍的更多相关文章

  1. java中io对文件操作的简单介绍

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  2. (Unity)XML文件读写与IO文件操作类使用介绍

    using System.Xml;                //xml文件操作命名空间 #region 写入操作 void WriteXMLFile(string _fileName) { Xm ...

  3. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  4. Qt之课外实践——文件操作(简单清道夫)

    说明:这个小项目是关于文件操作的.主要的功能有:重复文件的查找(根据文件的大小),说白了,就是讲大小相同的文件在一起显示出来,供用户自由的选择删除.这个360云盘里的文件去重还差的很远.还有空文件夹的 ...

  5. Python3学习之路~2.8 文件操作实现简单的shell sed替换功能

    程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的 ...

  6. Java文件I/O简单介绍

    目录 一.File类 1.1 构造方法 1.2 常用方法 1.3 例子 二.基础I/O:字节流.字符流 2.1 字节流 2.1.1 字节输出流 OutputStream 2.1.2 FileOutpu ...

  7. php之文件上传简单介绍

    要声明的form表单格式 <form action="act.php" method="post" enctype="multipart/for ...

  8. C#——文件操作类简单封装

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO ...

  9. OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)

    PS. 因为csdn博客文章长度有限制,本文有部分内容被截掉了.在OpenCV中文站点的wiki上有可读性更好.而且是完整的版本号,欢迎浏览. OpenCV Wiki :<OpenCV 编程简单 ...

随机推荐

  1. IHS怎么通过80端口连接WAS——<转>

    IHS如何通过80端口连接WAS? 经常看到有朋友问这个问题,所以简单总结一下基本步骤:   IHS和WAS之间是通过Plugin来实现的,一般的Plugins和IHS安装在同一物理机器上,WAS安装 ...

  2. keil 51启动代码

    Startup code:启动代码. 在Keil中,启动代码在复位目标系统后立即被执行.启动代码主要实现以下功能: (1) 清除内部数据存储器 (2) 清除外部数据存储器 (3) 清除外部页存储器 ( ...

  3. #include< >和#include""的区别

    Answer 1:#include 会将指定文件的内容插入到源程序文件中.当使用的格式时,编译器会从环境变量INCLUDE所指定的路径中寻找file-name 文件,如果没有定义INCLUDE,C 编 ...

  4. 【Linux】鸟哥的Linux私房菜基础学习篇整理(五)

    1. type [-tpa] name:查看name命令是否为bash内置命令.参数:type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令:-t:当加入-t参数时,type会通 ...

  5. margin:-75px的理解及妙用——纯CSS制作水平/垂直都居中短边为50px/长边为150px的红色十字架

    有这么一个题目: 使用重构的方式制作出一个如下图的水平.垂直都居中短边为50px,长边为150px的红色十字架. 要求只使用2个div完成 答案: <!DOCTYPE html PUBLIC & ...

  6. C++程序原码

    直接插入排序基本算法 #include<iostream.h> #include<stdlib.h> #include<time.h> const int n=10 ...

  7. [Locked] Flatten 2D Vector

    Problem Description: Implement an iterator to flatten a 2d vector. For example,Given 2d vector = [ [ ...

  8. 平衡二叉树(AVL)java实现

    数的节点 package com.ydp.tree.AVLTree; public class Node{ private int data = 0; private Node lchild = nu ...

  9. codeforces 546B

    Description Colonel has n badges. He wants to give one badge to every of his n soldiers. Each badge ...

  10. Solr使用solr4J操作索引库

    Solrj是Solr搜索服务器的一个比较基础的客户端工具,可以非常方便地与Solr搜索服务器进行交互.最基本的功能就是管理Solr索引,包括添加.更新.删除和查询等.对于一些比较基础的应用,用Solj ...