?php//文件的基本操作//fopen()打开一个文件//使用绝对路径打开一个文件,选择只读模式,并返回资源$handle$handle=fopen("D:/lamp/apache2/htdocs/test/file.txt","r");//访问文档根目录下的文件,也选择
<?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); ?>