換個1mb的文本它肯定有空格換行,具體操作如下代碼:
成都創(chuàng)新互聯(lián)于2013年開始,先為寶豐等服務建站,寶豐等地企業(yè),進行企業(yè)商務咨詢服務。為寶豐企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
$file = file("welcome.txt");
foreach($file as $line) echo $line.'br /';
這個更方便, file()直接把文本按行轉(zhuǎn)換成數(shù)組
fgets如果沒指定第二參數(shù),將直接讀取到緩存結(jié)束為止, 其實它不以換行來循環(huán)的,它的第二參數(shù)也是限制每次讀取的字符個數(shù)而已。
?php
header("Content-type:text/html;charset=utf-8");
$f_open = fopen('aaa.txt','w+'); //打開文件
if(isset($_POST['submit'])){ //判斷,如果點了提交按鈕則執(zhí)行以下代碼
fwrite($f_open,$_POST['txt']); //寫入文件,內(nèi)容為文本域傳過來的值
}
?
!DOCTYPE html
html
head
title/title
style type="text/css"
textarea{
width: 300px;
height: 20px;
}
/style
/head
body
form method="post" action="a.php"
textarea name="txt"
?php
$aaa = readfile('aaa.txt'); //讀取aaa.txt的內(nèi)容
?
/textarea
input type="submit" name="submit"
/form
/body
/html
?php
fclose($f_open); //關(guān)閉文件
?
如果直接使用file_get_contents來讀取文件,那么在文件很大的時候會很占內(nèi)容,比如這個文件有1GB的時候。
這個時候使用傳統(tǒng)的文件操作方式就好的多,因為是查找嘛,逐行讀取匹配應該也是可以的,下面是我的一個建議,不知道是否滿足你的要求,可以看下:
//
需要查找的內(nèi)容
$search
=
'bcd';
//
打開文件
$res
=
fopen('a.txt',
'r');
while
($line
=
fgets($res,
1024))
{
//
根據(jù)規(guī)則查找
if
(strpos($line,
$search)
===
0)
{
//
根據(jù)既定規(guī)則取得需要的數(shù)據(jù)
echo
substr($line,
4,
-1);
//
這里就是你想得到的
break;
}
}
//
關(guān)閉文件
fclose($res);