一,文件操作的一般的流程:
1.打开文件 2.读取或者写入文件 3.关闭文件
二,打开文件的函数:fopen(文件的路径或URL网址,打开的方式);
$file = fopen ("c:\data\info.txt", "r");
$file = fopen ("http://www.hynu.cn/", "r");
$file = fopen ("ftp://user:password@ec.cn/exam.txt", "w"); $file = fopen ("/home/rasmus/file.txt", "r");
//以二进制写入方式打开unix系统目录下的file.gif文件 $file = fopen ("/home/rasmus/file.gif", "wb"); ?>
三,读取文件的相关的函数:
fread():读取整个文件 ,有两个参数,一个是fopen的返回值,一个是文件的大小
fgets():读取文件的一行字符 ,参数是fopen的返回值
fgetss():读取文件的一行字符,但是它会去除html和php的标记
fgetc():读取文件的一个字符
file_get_contents() :将文件读入字符串,无须打开和关闭,就可以读取文件的全部内容
file():将文件读入到一个数组
readfile() : 读取一个文件,并且输出到输出缓冲
四,移动文件指针
移动文件指针到文件的开头
bool rewind(resource handle)
返回文件指针的当前位置
int ftell(resource handle)
移动文件指针到指定位置
int fseek(resource handle, int offset[, int origin])0:文件的开头 1.文件的当前位置 2 .文件末尾
五,文件的写入
1. fwrite()函数
可以将一个字符串写入到文本文件中
int fwrite( resource handle, string string [, int length])
*这里的第一个参数是fopen的返回值
<? $fp=fopen("new.txt","w"); fwrite($fp,'这是写入的一行话 '); fwrite($fp,'最多写入12个字符 ',12); fclose($fp); ?>
<? $fp=fopen("new.txt","a"); //追加写入 fwrite($fp,'这是写入的一行话 '); fclose($fp); ?> 如果希望在写入后再读取文件中的内容,可以采用可读写的方式写入 <? $fp=fopen("new.txt","w+"); fwrite($fp,'这是写入的一行话 '); rewind($fp); $str=fread($fp,20
2.file_put_contents()函数
无须经过打开文件及关闭文件的操作就可将字符串写入文件
int file_put_contents(string filename, string data[, int mode])
例如
<? file_put_contents('news.txt','第一次');$data='要写入的数据'; $num=file_put_contents('news.txt',$data,FILE_APPEND); //追加方式写入 echo $num; //返回写入的字节数 ?>
一些基本的文件操作函数
header("Content-type:text/html;charset=utf-8"); //创建文件 touch("./wuyanzhu.txt"); //复制文件 copy("wuyanzhu.txt", "man1.txt"); //删除文件 unlink("man1.txt"); //向文件中写入内容 $f=fopen("wuyanzhu.txt", "w"); fwrite($f, "我是一个帅气的男人!!!"); //重命名一个文件的名字 rename("wuyanzhu.txt", "chenguanxi.txt"); //不用打开和关闭的操作直接输出文件的内容 echo file_get_contents("wuyanzhu.txt"); //不用打开和关闭 的操作直接在文件写入内容,FILE_APPEND表示在文件的尾部加入内容 echo file_put_contents("wuyanzhu.txt", "我不是傻逼",FILE_APPEND); //可以直接读取到百度的网页 readfile("www.baidu.com"); //将文件转化为一个数组 - $arr=file("wuyanzhu.txt"); echo count($arr); print_r($arr);