基于PHP文件操作的详细诠释

  

复制代码 代码如下:

  $path1= "E:/myphp/text.txt";

  if(!file_exists($path1)){

  echo "文件不存在!";

  }else{

  $handle1 = fopen($path1, 'r+') or exit("Unable to open file");

  // while (!feof($handle1)){

  //  echo fgets($handle1)."<br>";

  // }

  while(!feof($handle1)){

  echo fgetc($handle1);

  }

  }

  上面的代码阐释了一个简单的文件读取操作。说明下:

  fopen是打开文件资源。

  使用方法:

  $file=fopen("welcome.txt","r");

  具体意思:第一个参数是文件的路径。后面的参数是要求用何种方式打开文件,有下面几种类型:

  r  只读。在文件的开头开始。

  r+  读/写。在文件的开头开始。

  w  只写。打开并清空文件的内容;如果文件不存在,则创建新文件。

  w+  读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。

  a  追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。

  a+  读/追加。通过向文件末端写内容,来保持文件内容。

  x  只写。创建新文件。如果文件已存在,则返回 FALSE。

  x+

  读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

  注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。

  比较常用的是前面的4个。

  fgetc:

  string fgetc ( resource$handle )

  返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。碰到 EOF 则返回FALSE。

  fgets:

  string fgets ( int$handle [,int$length ] )

  从 handle 指向的文件中读取一行并返回长度最多为length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定length,则默认为 1K,或者说 1024 字节。

  出错时返回 FALSE。

  fgetss:

  string fgetss ( resource$handle [,int$length [,string$allowable_tags ]] )

  和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。(跟fgets()相同,只是他过滤了html和php的标记而已。)

  可以用可选的第三个参数指定哪些标记不被去掉。

  feof() 函数检测是否已到达文件末尾 (eof)。

  //判断文件或目录是否存在

  bool file_exists(string filename)

  判断文件或目录是否存在,存在则返回真,否则返回假

  格式:

  

复制代码 代码如下:

  if(file_exists(“hello.txt”))

  {

  Echo “文件存在”;

  }

  //打开文件

  格式:

  fopen(filename,mode)

  说明:按指定的格式打开指定的文件

  filename:要打开的文件名

  mode : 打开模式

  fopen(“hello.txt”,”w”);

  表示以写的方式打开hello.txt文件

  //写文件

  格式:

  fwrite(resource,string);

  说明:在打开的文件中添加指定的内容

  resource:打开的文件

  string:要写入的内容

  例:

  $handle = fopen(“hello.txt”,”w”) //若a ,则可追加数据

  fwrite($handle,”1\r\n”)

  //关闭文件

  格式:

  fclose($handle)

  说明:关闭打开的文件

  例:

  $handle = fopen(“hello.txt”,”w”);

  fclose($handle);

  //读取一行数据

  格式:

  fgets(int handle[,int length])

  说明:读取length-1个字符。若没有指定length,则默认字节为1KB,

  若遇到换行、EOF或则已经读取了length-1个字符,则程序终止,

  出错时候返回false;

  例:

  $handle = fopen(“hello.txt”,”r”);

  $buffer = fgets($handle,1024);

  echo $handle; //输出一行信息

  //读取整个文件

  格式:

  readfile(filename)

  说明:读取整个文件,并输出到浏览器

  例:

  <?

  readfile(“hello.txt”);

  ?>

  //取文件大小

  格式:

  filesize(filename)

  说明:获取指定文件大小,出错返回false

  例:

  filesize(“a.rar”)

  //删除文件

  格式:

  unlink()

  说明:删除一个文件,成功则返回true,否则返回false

  例:

  unlink(“b.txt”)

  //创建目录

  格式:

  mkdir(dirname)

  说明:创建一个目录

  例:mkdir(“newfolder”); //当前目录下创建新文件夹

  //删除目录

  格式:

  rmdir(dirname)

  说明:删除一个目录

  例:rmdir(“newfolder”);

  //取得文件名

  格式:

  basename(filepath)

  说明:从指定的路径中返回文件名

  例:

  basename(“c:\mytools\a.txt”) //返回a.txt

  //获取文件路径信息

  pathinfo(path)

  说明:返回文件路径信息,结果保存在数组中,数组下标为

  dirname(路径) , basename(文件名) , extension(扩展名)

  例:pathinfo(“c:\mytools\a.txt”)

  //取绝对路径

  格式:

  realpath(filename)

  说明:取指定文件的绝对路径,失败则返回false

  例:realpath(“h.txt”)  //F:\apache\example\h.txt

  //复制文件

  格式:

  copy(source,dest)

  说明:将source文件复制到dest处

  例:copy(“h.txt”,”newfloder\a.txt”)

  //判断是否是目录

  格式:

  is_dir(filename)

  说明:判断给定文件名是否是一个目录。如果filename存在并且

  为目录,则返回true,否则返回false.

  例:

  

复制代码 代码如下:

  if(is_dir(“newfolder”))

  {

  echo “是文件目录”;

  }

  //打开目录

  格式:opendir(path)

  说明:打开一个指定文件目录,返回一个资源标示符

  例:

  $hand = opendir(“.”) //打开根目录

  //读取目录

  格式:

  readdir($handle)

  说明:读取一个打开的文件目录流

  readdir($hand);

  //关闭目录

  格式:

  closedir($handle)

  说明:关闭一个打开的目录流

  例:closedir($hand);