PHP经验分享

文件和目录处理相关

2017-10-18  本文已影响41人  Monkey_zhou
image.png
文章来自:zhouxiaoshuai

文件和目录处理相关

题:

不断在文件hello.txt头部写入一行"hello world" 字符串,要求代码完整
考点:文件操作/写入操作;
延伸:目录操作函数,其他文件操作;

文件读写操作 文件系统函数

fopen():用来打开一个文件,打开是需要指定打开模式;

打开模式:
'r' 只读方式打开,将文件指针指向文件头。
'r+'    读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零(清空文件)。如果文件不存在则尝试创建之。
'w+'    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾(追加的形式)。如果文件不存在则尝试创建之。
'a+'    读写方式打开,将文件指针指向文件末尾(读写追加)。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
'x+'    创建并以读写方式打开,其他的行为和 'x' 一样。
'b'     打开一个二进制文件。与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。
't'     Windows 下提供了一个文本转换标记('t')可以透明地将 \n 转换为 \r\n
【b 和 t 是配合前面的四大类使用的】
写入操作:
读取函数:
关闭文件:fclose():关闭一个已打开的文件指针;

如果不需要打开文件可以使用:

file_get_contents():将整个文件读入一个字符串;
file_put_contents():将一个字符串写入文件;

其他读取函数:
访问一个远程文件[此文件不在本地服务器上]:
目录相关操作:

名称相关:

目录读取:目录函数
目录删除:
目录创建:
文件大小:
目录大小:首先要遍历目录下的文件,然后将文件大小相加;
磁盘大小:
文件拷贝:
文件类型:
删除文件:
重命名文件和目录:
文件截取:
文件属性:
其他函数:

牢记文件操作函数以及几种打开模式,理解目录的操作步骤,练习完成目录的赋值和删除函数的编写;

练习题:
1. 通过PHP函数的方式对目录进行遍历,写出程序;
[注意:]遍历时,注意目录中子目录/文件名为0或者为空的,判断时是用  false !== 目录名
2. 不断在文件hello.txt头部写入一行"hello world" 字符串,要求代码完整
//不断在文件hello.txt头部加入一行 "hello world"
/**
 * 不断的在hello.txt文件中写入 hello world
 */
$file = './hello.txt';
// 打开文件
$handle = fopen($file, 'r');
//读取文件内容
$content = fread($handle, filesize($file));
//拼接文件内容
$content = 'hello world ' . $content;
//关闭文件
fclose($handle);
//再次打开文件
$handle = fopen($file, 'w');
//将内容写入文件
fwrite($handle, $content);
//将文件关闭
fclose($handle);
//通过PHP函数的方式对目录进行遍历,写出程序
$dir = './imooc';

function loopDir($dir)
{
    $handle = opendir($dir);
    //读取目录下的文件,判断是否是一个目录或者是文件
    while (false !== ($file = readdir($handle))){
        //如果是目录,排除 .和.. 当前目录和上级目录
        if ($file != '.' && $file != '..'){
            //输出文件名称
            echo $file . "<br>";
            //如果是目录继续遍历目录
            if (filetype($dir . '/' . $file) == 'dir'){
                loopDir($dir . '/' . $file);
            }
        }
    }
}

loopDir($dir);
上一篇 下一篇

猜你喜欢

热点阅读