<?PHP
//文件的基本操作
//fopen()
打开一个文件
//使用绝对路径打开一个文件,选择只读模式,并返回资源$handle
$handle=fopen("D:/lamp/apache2/htdocs/test/file.txt","r");
//访问文档根目录下的文件,也选择只读模式
$handle=fopen($_SERVER['DOCUMENT_ROOT']."/test/file.txt","r");
//打开远程文件,使用http协议只能以读的方式打开
$handle=fopen("http://www.wowsai.com","r");
//使用FTP协议打开远程文件,如果FTP服务器可写,则可以以写的模式打开
//$handle=fopen("ftp://user:[email protected]/file.txt",'w');
//fclose()
关闭打开的资源类型
//fwrite()
向文件中写入内容
$fileName="data.txt";
//声明一个文件的变量
//用只写的方式打开文件,没有则创建,并且在打开失败时通过程序
$f_handle=fopen("data.txt","w")or die("打开<b>".$fileName."</b>文件失败");
for($i=0;$i<10;$i++){
//通过一个循环,向文件中添入内容
fwrite($f_handle,"again\n");
}
fclose($f_handle);
//关闭打开的文件
//file_put_contents()
一次将所有数据写入到指定的文件中
//读取文件内容
//fread()
读取打开的文件
//file_get_contents()
将文件读入字符串
//fgets()
从打开的文件中返回一行
//fgetc()
从打开的文件中返回字符
//file()
把文件读入一个数组中
//readfile()
读取一个文件,并输出到输出缓冲
//feof()
判断一个文件指针是否位于文件的结束处
//从文件中读取指定字节数的内容存入到一个变量中
$fileName2="data.txt";
$f_hand=fopen($fileName2,"r")or die("文件打开失败");
$contents=fread($f_hand,50);
fclose($f_hand);
echo $contents."<br>";
//从文件中读取全部内容存入到一个变量中,每次读取一部分,循环读取
/* $fileName3="D:/lamp/apache2/icons/link.gif";
//将二进制文件的文件名保存到一个变量中
$f3_handle=fopen($fileName3,"rb")or die("文件打开失败"); //以只读的方式打开文件,模式加了"b"
$f3_contents="";
//声明一个用于保存文件内容的字符串
while(!feof($f3_handle)){
//循环读取文件中的内容,知道文件结束
$f3_contents.=fread($f3_handle,1024);
//每次读取1024个字符
}
fclose($f3_handle);
echo $f3_contents; */
//另一种读取文件全部内容的方法
$fileName4="data.txt";
$f4_handle=fopen($fileName4,"r")or die("文件打开失败");
$f4_con=fread($f4_handle,filesize($fileName4));
//用filesize获取文件的长度,这样来读取文件的全部内容
fclose($f4_handle);
echo $f4_con."<br>";
//另一种方法读取文件的全部内容,比上面的性能要好的多
echo file_get_contents("data.txt");
$f5_handle=fopen("data.txt","r") or die("文件打开失败");
while(!feof($f5_handle)){
//判断指针是否到文件结尾
$buffer=fgets($f5_handle);
//每次从文件中读取一行
echo $buffer."<br>";
}
fclose($f5_handle);
$f6_handle=fopen("data.txt","r") or die("文件打开失败");
while(!feof($f6_handle)){
//判断指针是否到文件结尾
$buffer=fgetc($f6_handle);
//每次从文件中读取一个字符
echo $buffer."<br>";
}
fclose($f6_handle);
print_r(file("data.txt"));
//把文件读入到一个数组中
readfile("data.txt");
//直接将文件中的内容读出,并输出到浏览器
//访问远程文件
确保PHP.ini中的"allow_url_fopen"是打开的,并且确保远程文件具有访问权限
$ws_file=fopen("http://www.wowsai.com","r")or die("远程文件打开失败");
//打开远程文件
while(!feof($ws_file)){
$ws_line=fgets($ws_file);
if(preg_match("/<title>(.*)<\/title>/",$ws_line,$res)){
//使用正则匹配网站的标题
$title=$res[1];
break;
}
}
fclose($ws_file);
echo $title."<br>";
//移动文件的指针
//ftell()
返回指针的当前位置
//fseek()
移动指针到指定的位置
//rewind()
移动指针到文件的开头
$fp=fopen("data.txt","r") or die("文件打开失败");
//用只读方式打开文件
echo ftell($fp)."<br>";
//输出刚打开文件时的指针的位置,默认是0
echo fread($fp,10)."<br>";
//读取文件的前10个字符,文件指针发生了改变
echo ftell($fp)."<br>";
//读取文件的10个字符后,文件的指针到了10的位置
fseek($fp,30,SEEK_CUR);
//将文件的指针向后移动30个字符
echo ftell($fp)."<br>";
//文件移动30个字符后,到了40的位置
echo fread($fp,10)."<br>";
//读取40到50之间的字符,指针会到50
fseek($fp,-10,SEEK_END);
//将指针设置到文件倒数第10的位置
echo fread($fp,10)."<br>";
//输出文件最后10个字符
rewind($fp);
//将文件指针设置到文件的开头
echo ftell($fp);
//文件的指针又回到了开头,所以会输出0
fclose($fp);
?>