- //文件的基本操作
- //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:password@example.com/file.txt",'w');
- //fclose()
- 关闭打开的资源类型
- //fwrite()
- 向文件中写入内容
- $fileName="data.txt";
- //声明一个文件的变量
- //用只写的方式打开文件,没有则创建,并且在打开失败时通过程序
- $f_handle=fopen("data.txt","w")or die("打开".$fileName."文件失败");
- 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."
"; - //从文件中读取全部内容存入到一个变量中,每次读取一部分,循环读取
- /* $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."
"; - //另一种方法读取文件的全部内容,比上面的性能要好的多
- echo file_get_contents("data.txt");
- $f5_handle=fopen("data.txt","r") or die("文件打开失败");
- while(!feof($f5_handle)){
- //判断指针是否到文件结尾
- $buffer=fgets($f5_handle);
- //每次从文件中读取一行
- echo $buffer."
"; - }
- fclose($f5_handle);
- $f6_handle=fopen("data.txt","r") or die("文件打开失败");
- while(!feof($f6_handle)){
- //判断指针是否到文件结尾
- $buffer=fgetc($f6_handle);
- //每次从文件中读取一个字符
- echo $buffer."
"; - }
- 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>/",$ws_line,$res)){
- //使用正则匹配网站的标题
- $title=$res[1];
- break;
- }
- }
- fclose($ws_file);
- echo $title."
"; - //移动文件的指针
- //ftell()
- 返回指针的当前位置
- //fseek()
- 移动指针到指定的位置
- //rewind()
- 移动指针到文件的开头
- $fp=fopen("data.txt","r") or die("文件打开失败");
- //用只读方式打开文件
- echo ftell($fp)."
"; - //输出刚打开文件时的指针的位置,默认是0
- echo fread($fp,10)."
"; - //读取文件的前10个字符,文件指针发生了改变
- echo ftell($fp)."
"; - //读取文件的10个字符后,文件的指针到了10的位置
- fseek($fp,30,SEEK_CUR);
- //将文件的指针向后移动30个字符
- echo ftell($fp)."
"; - //文件移动30个字符后,到了40的位置
- echo fread($fp,10)."
"; - //读取40到50之间的字符,指针会到50
- fseek($fp,-10,SEEK_END);
- //将指针设置到文件倒数第10的位置
- echo fread($fp,10)."
"; - //输出文件最后10个字符
- rewind($fp);
- //将文件指针设置到文件的开头
- echo ftell($fp);
- //文件的指针又回到了开头,所以会输出0
- fclose($fp);
- ?>
|