<?php
header("Content-Type:text/html;charset=utf-8");
//例子用于介绍php中基本的文件操作
//下面是得到网站的根目录
echo $_SERVER['DOCUMENT_ROOT'];
//下面是fopen,打开文件以追加a和二进制b的模式,另外还有只读r、只写w、谨慎写x模式
$fq=fopen("{$_SERVER['DOCUMENT_ROOT']}/myexp/exp02file.txt",'ab');
//下面是向该文件中追加内容
fwrite($fq,"the first write\n");
//另外一种写入方法file_put_contents(string filename,string data) 这种方法不用打开文件就能直接写入
//这种模式直接重写,想追加就加上FILE_APPEND参数
file_put_contents("exp02file.txt","the second write\n");
//下面的模式是可以追加
file_put_contents("exp02file.txt","the third write\n",FILE_APPEND);
fclose($fq);
//下面介绍读取文件的函数
$fq=fopen("exp02rf.txt",'rb');
//判断文件是否读完feof函数
while(!feof($fq))
{
//下面是用fgets(file,size)读取,该函数的特点是一次读一行,读取结束的标志为读取了size-1大小或者读取了\n或者读取了EOF
$content=fgets($fq,1000);
echo $content;
}
//文件定位函数rewind(file) 复位到文件开始位置
rewind($fq);
while(!feof($fq))
{
//fgetss也可以用于读,不过该函数的作用是可以过滤掉html以及php标记,另外它还有第三个参数,可以设置过滤规则!!!
$content=fgetss($fq,1000);
echo $content;
}
fclose($fq);
//rewind($fq);
$fq=fopen("exp02rf1.txt",'rb');
while(!feof($fq))
{
//fgetcsv(file,size,"\t"),该用于读取的函数的强大之处在于可以在规定字符处进行分行!!下面我用另一个文件做实验 但返回的是数组
$content=fgetcsv($fq,100,"\t");
print_r($content);
echo "\n";
}
fclose($fq);
//下面介绍读取整个文件readfile函数
readfile("exp02file.txt");
//fpassthru($fq)需要先打开文件然后传递文件指针 就不介绍了
//file(stirng filename) 该函数把每一行作为数组元素返回到一个数组中 也不做具体实例
//file_get_contents(filename) 该函数强大之处在于可以把文件内容返回到一个字符串中,不在屏幕上显示
echo $content;
//fgetc可以一次读取一个字符 强大之处在于可以边读取边过滤字符
$fq=fopen("exp02file.txt",'rb');
//下面我们把文件中所有小写字母输出
while(!feof($fq))
{
$alphet=fgetc($fq);
if($alphet>='a'&&$alphet<='z')
echo $alphet;
}
fclose($fq);
//下面是fread(string filename,size)函数读取任意长度,不列举介绍了
//下面是查看文件是否存在的函file_exists(filename)
if(file_exists("exp02file.txt"))
{
echo "太好了!文件exp02file.txt存在!!!";
}
else
{
echo "很抱歉!文件exp02file.txt不存在!!";
}
//确定文件大小,返回以大小以字节单位 filesize(string filename)
//删除文件 unlink(string filename)
//文件定位的三种
//1、已经介绍的rewind($fq) 回到文件头
//2、 ftell($fq) 返回当前位置距离开头的字节数
//3、 fseek($fq,offset) 默认情况为从文件开头移动offset字节 还有第三个参数可以设置初始位置 包括初始位置SEEK_SET 当前位置SEEK_CUR 结束位置SEEK_END
//本身这种函数开销都是很大的,少用为妙
//还有一种函数是文件锁定与解锁,这是用于文件被并发使用时。非常有用,举个例子
$fp=fopen("exp02file.txt",'ab');
flock($fp,LOCK_EX);
fwrite($fp,"i am using it");
flock($fp,LOCK_UN);
fclose($fp);
?>