<?php
/**-------------读取文件内容5种方法------------*/
//-----Method1----fread()--------
$file_path = "test.txt";
$fp = fopen($file_path,"r") or die('open file fail');
$str = fread($fp,filesize($file_path));//指定读取大小,这里把整个文件内容读取出来
$str = str_replace("\r\n","\n",$str);
print_r($str);
fclose($fp);
//-----Method2----这种用法很占用内存--------
if(file_exists($file_path)) {
$str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
$str = str_replace("\r\n", "\n", $str);
print_r($str);
}
//-----Method3----fread()对于大文件设置$buffer每次读取大小--------
$fp = fopen($file_path,"r") or die('open file fail');
$str = "";
$buffer = 1024;//每次读取 1024 字节
while(!feof($fp)){//循环读取,直至读取完整个文件
$str .= fread($fp,$buffer);
}
$str = str_replace("\r\n","\n",$str);
echo $str;
fclose($fp);
//-----Method4----file()--------
if(file_exists($file_path)){
$file_arr = file($file_path);
for($i=0;$i<count($file_arr);$i++){//逐行读取文件内容
print_r($file_arr[$i]);
}
//-----Method5----fopen-------
$fp = fopen($file_path,"r");
$str ="";
while(!feof($fp)){
$str .= fgets($fp);//逐行读取。如果fgets不写length参数,默认是读取1k。
}
$str = str_replace("\r\n","\n",$str);
echo $str;
fclose($fp);
}
/**----------------------写文件----------------------------------*/
//-----------------Method1-------fwrite-----------------
$str = "write file test\n";
//fopen($file_path,"a")追加
$fopen = fopen($file_path,"a")or die("文件不存在");
fwrite($fopen,$str);
fclose($fopen);
//-----------------Method1--------file_put_content()-----------------
$str = "file_put_content test \n";
file_put_contents($file_path,$str,FILE_APPEND);
?>
?>