目录

文件:

1、File_exists(string name)

检查文件或目录是否存在

存在返回true 不存在返回false

Feof(resource handle)

测试文件指针是否到了文件结束的位置

如果碰到eof也就是结束的时候就返回true,否则返回false

2、Fopen(string filename,string mode)

用于打开文件或一个url

Fopen将指定的filename的资源绑定在一个流上

打开文件的模式有(均为小写形式)

  • R:只读方式,将文件指针指向文件头
  • R+:读写方式,将文件指针指向文件头
  • W:写入方式打开 ,将文件指针指向文件头并将文件大小截为0,如果文件不存在则创建
  • W+:读写方式打开,。。。。。。。。。。。。。。。。。。。。。。。
  • A:写入方式打开,将文件指针指向文件末尾,如果文件不存在则创建之
  • A+:读写方式打开,。。。。。。。。。
  • X
  • X+
  • B:强制使用二进制模式这样就不会进行数据格式转换了

常用的组合:r,a+ ,wb

$handle = fopen("/tmp/cc.txt","r"); -- 一般只为读取文件的情况
$handle = fopen("/tmp/cc.txt","wb"); --可能需要对文件进行读写的
$handle = fopen("/tmp/cc.txt","a+"); -- 可能需要对文件进行读写的

一般要判断文件是否能打开:

If(!$handle = fopen("/tmp/cc.txt","wb"))
{
    Echo "file open fail";
    Exit;
}

读取文件的方式:

3、Fgetc(source handle)

从文件中读取一个字符,从文件头开始;

当读取指针指向文件结束符EOF时,返回false;

从文件中一个一个字符的读取:

While(false !== ($char = fgetc($handle)))
{
    Echo "$char\r\n";
}

4、Fgets(source handle)

从文件中读取一行或指定字节数的字符串;

出错时返回false

While(!feof($handle))
{
    $buffer = fgets($handle,4096);//不指定字节数,默认是一行1024字节
}

5、Fread(resource handle,int length)

读取文件,从文件指针handle读取最多length个字节;如果出错返回false

$conten = fread($handle,filesize($filename)); --相当于读取整个文件的内容

6、File(string filename)

将整个文件读入到一个数组中

数组中每个单元就对应文件中的一行,包括换行符

如果失败会返回false

$arr = file($filename)

7、Readfile(string filename)

读入一个文件并写入到缓存中 比较少用。

写入文件:

8、Is_writeable(string filename)

判断给定文件名是否可写

可写返回true 不可写返回false

9、Fwrite(resource handle,string content[,int length])

写入文件 返回写入文件的字符数,出错时返回false

把content内容写入到文件指针handle处,从哪里开始写这个由文件打开的模式,即打开时已经指定文件指针的位置(是文件开头或是文件末尾)

Length指定允许写入length个字节

Fwrite($handle,$content)

10、Fputs(resource handle,string content)

写入文件

是fwrite的别名 使用方式一样

关闭文件:

11、Fclose(resource handle)

操作文件结束后是要关闭文件指针

成功返回true 失败返回false

12、文件操作

//测试文件的copy move unlink 和文件属主、权限的关系

$filename = “/tmp/cc.txt”;

//打开文件 文件必须有足够的操作权限x表示有操作权限 如果是root则拥有对文件的所有权限 否则将打开文件失败

if(!$handle = fopen($filename,"a+"))
{
    die("\r\nfile ".$filename." open fail");
}
$content_arr = file($filename);
echo "BEG Read File...";
foreach($content_arr as $content)
{
    echo $content."\r\n";
}
echo "END Read\r\nBEG Write File...";
$new_content = "my name is cc\r\ni am from right\r\ngo to left\r\ntoday i will go home\r\nnew file yyl.txt";
if(is_writeable($filename))
{
    fwrite($handle,$new_content);
    echo "END Write\r\n";
}
else
{
    die("\r\nfile ".$filename." is not writeable");
}

$newfilename = "/tmp/yyl.txt";

//复制文件 文件对用户必须有足够的操作权限
if(!copy($filename,$newfilename))
{
    die("\r\n".$filename." copy fail");
}
else
{
    echo "$filename copy success to $newfilename\r\n";
}

//删除文件 文件必须是属主自己或root才可删除 当然要在有权限的情况下
if(!unlink($filename))
{
    die("\r\n".$filename." unlink fail");
}
else
{
    echo "$filename unlink success\r\n";
}

//移动或重命名文件 文件必须属主或root才可重命名 当然要在有适当权限的情况下
if(!rename($newfilename,$filename))
{
    die("\r\n".$newfilename." rename fail");
}
else
{
    echo "$newfilename rename success $filename\r\n";
}

要注意文件的路径的存在,否则将可能删除整个目录下的所有文件;‘

目录读取及操作:

1、Is_dir(string filename)

判断给定目录名是否是目录

是目录则返回true 否则返回false

2、Opendir(string path)

打开目录句柄

如果因为path错误、权限等问题不能打开则返回false

If(is_dir("/tmp/"))
{
    If(!$dirhandle = Opendir("/tmp"))
    {
        Die("open dir fail");
    }
}

3、Readdir(resource dirhandle)

从目录句柄中读取条目

返回下一个文件的文件名(包括目录名),文件名以文件系统中的排序返回

成功就返回文件名 否则就返回false

While(false !== ($filename = readdir($dirhandle)))
{
    Echo $filename;//可以适当过滤不需要的文件名 也包括目录名
}

4、Mkdir(string path,int mode)

尝试创建一个由path指定的目录,mode指的是目录的创建后的权限 如最大权限777

Mkdir("/tmp/ccc",0777);

5、Rmdir(string dirname)

尝试删除dirname指定的目录,不够该目录必须是空的

6、Closedir(resource handle)

关闭目录句柄


@tsingchan