打开文件:fopen()
resource fopen(string filename, string mode [,bool use_include_path]);
参数filename是要打开的包含路径的文件名,可以是相对路径,也可以是绝对路径。如果没有任何前缀则表示打开的是本地文件;参数mode是打开文件的方式,可取值
关闭文件:fclose()
bool fclose(resource handle);成功返回true,否则返回false。
读写文件:
读数据:可以读取一个字符、一行字串或整个文件,还可以读取制定长度的字串
读取整个文件readfile()、file()和file_get_contents()
readfile()函数读取一个文件并将其写入到输出缓冲,如果出错返回false。不需要打开/关闭文件,也不需要echo、print等输出语句
int readfile(string filename);
file()函数将文件内容按行存放到数组中,包括换行符,读取失败返回false
array file(string filename);
file_get_contents()将文件内容读入到一个字符串。如果有offset和maxlen参数,将从参数offset所指定的位置开始读取长度为maxlen的一个字符串。读取失败返回false。该函数适用于二进制文件,是将整个文件读入到一个字符串中的首选方式
string file_get_contents(string filename [,int offset [,int maxlen]]);
readfile('lyc.txt');
echo '
';
$f_array = file('lyc.txt');
foreach ($f_array as $str){
echo $str.'
';
}
echo '
';
$f_chr = file_get_contents('lyc.txt');
echo $f_chr;
echo '
';
读取一行数据:fgets()和fgetss()
fgets()函数一次读取一行数据:string fgets(resource handle [, int length])
从handle指定文件中读取一行并返回长度最大值为length-1个字节的字符串,遇到换行符、EOF或者读取了length-1个字节后停止。length缺省,读取到行结束
fgetss(), fgets()函数的变体,读取一行,会过滤掉html和php标记。
string fgetss(resource handle [,int length [,string allowable_tags]]);
$f_open = fopen('lyc.txt','rb');
while(!feof($f_open)){ //feof()测试指针是否到达了文件结束的位置
echo fgets($f_open);
}
fclose($f_open);
echo '
';
$f_open1 = fopen('lyc.txt','rb');
while(!feof($f_open1)){ //feof()测试指针是否到达了文件结束的位置
echo fgetss($f_open1);
}
fclose($f_open1);
echo '
';
读取一个字符:fgetc()
,返回一个字符,遇到EOF返回false
string fgetc(resource handle);
$f_open2 = fopen('lyc.txt','rb');
while(false !== ($chr = fgetc($f_open2))){
echo $chr;
}
fclose($f_open2);
读取指定长度字符串:fread()
string fread(resource handle, int length);
当函数读取length个字节或遇到EOF结束
$filename = 'lyc.txt';
$fp = fopen($filename,'rb');
echo fread($fp,32);
echo '
';
echo fread($fp,filesize($filename)); //输出其余的文件内容
写入文件:
fwrite()和file_put_contents()
fwrite()函数也称为fputs(),用法相同。
int fwrite(string filename, string data [, int flags]);
flags可以是FILE_USE_INCLUDE_PATH、FILE_APPEND、LOCK_EX
$filename = 'lyc.txt';
$f_open = fopen($filename,'wb') or die('文件不存在');//不存在会新建一个
fwrite($f_open,'Hello World!');
fclose($f_open);
//file_put_contents()和依次调用fopen()、fwrite()、fclose()所实现的功能一样
file_put_contents('lyc.txt','Hello World!');
操作文件:
xfsdg