/**
成都創(chuàng)新互聯(lián)是一家專業(yè)提供常德企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計、H5場景定制、小程序制作等業(yè)務(wù)。10年已為常德眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
*?讀文件
**/
function?read_file($filename)
{
$fp?=?fopen($filename,?"r")?or?die("couldn't?open?$filename");
$read?=?fread($fp,?filesize($filename));
fclose($fp);
return?$read;
}
/**
*?寫文件
**/
function?write_file($filename,?$buffer)
{
$fp?=?fopen($filename,?"w")?or?die("couldn't?open?$filename");
flock(?$fp,?LOCK_EX?);
$write?=?fputs($fp,?$buffer);
flock(?$fp,?LOCK_UN?);
fclose($fp);
return?true;
}
/**
*?修改(只是追加內(nèi)容)
**/
function?append_to_file($filename,?$buffer)
{
$fp?=?fopen($filename,?"a")?or?die("couldn't?open?$filename");
flock(?$fp,?LOCK_EX?);
fputs($fp,?$buffer);
flock(?$fp,?LOCK_UN?);
fclose($fp);
return?true;
}
/**
*?測試
**/
$str?=?read_file('test.txt');
echo?$str;
write_file('test2.txt',?$str);
append_to_file('test2.txt',?"ABCD");
首先fopen讀取TXT文件,獲取一個文件指針,然后fgets獲取一行,再fgets繼續(xù)讀取下一行
官方例子:
?php
$f?=?fopen?("fgetstest.php",?"r");
$ln=?0;
while?(!?feof?($f))?{
$line=?fgets?($f);
++$ln;
printf?("%2d:?",?$ln);
if?($line===FALSE)?print?("FALSE\n");
else?print?($line);
}
fclose?($f);
這個前提是你的$f這個文件指針不能關(guān)閉,如果你想在不同請求的情況下實(shí)現(xiàn),那就要吧$f做全局存儲了,看看存session可否(我沒做過,不確定,你試試看)
php讀取文件內(nèi)容:
-----第一種方法-----fread()--------
?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = fread($fp,filesize($file_path));//指定讀取大小,這里把整個文件內(nèi)容讀取出來
echo $str = str_replace("\r\n","br /",$str);
}
?
--------第二種方法------------
?php
$file_path = "test.txt";
if(file_exists($file_path)){
$str = file_get_contents($file_path);//將整個文件內(nèi)容讀入到一個字符串中
$str = str_replace("\r\n","br /",$str);
echo $str;
}
?
-----第三種方法------------
?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = "";
$buffer = 1024;//每次讀取 1024 字節(jié)
while(!feof($fp)){//循環(huán)讀取,直至讀取完整個文件
$str .= fread($fp,$buffer);
}
$str = str_replace("\r\n","br /",$str);
echo $str;
}
?
-------第四種方法--------------
?php
$file_path = "test.txt";
if(file_exists($file_path)){
$file_arr = file($file_path);
for($i=0;$icount($file_arr);$i++){//逐行讀取文件內(nèi)容
echo $file_arr[$i]."br /";
}
/*
foreach($file_arr as $value){
echo $value."br /";
}*/
}
?
----第五種方法--------------------
?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str ="";
while(!feof($fp)){
$str .= fgets($fp);//逐行讀取。如果fgets不寫length參數(shù),默認(rèn)是讀取1k。
}
$str = str_replace("\r\n","br /",$str);
echo $str;
}
?