首先聲明,我下面的代碼是以你的那十行數(shù)據(jù)為基礎(chǔ),測試通過的。但是我得把它的局限說一下。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)英山免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
編碼的時候,我是根據(jù)你的每一行的規(guī)律來的。每行用6個數(shù)據(jù)分隔7個部分的內(nèi)容,所以,每個部分不能再有逗號了(當然這個危險主要來自標題,不過我看你標題分隔的時候都是空格或!)
你直接運行吧!
?PHP
$file_name="data.txt"; //假設(shè)你的數(shù)據(jù)是存在這個文件中的
$fp=fopen($file_name,'r');
while(!feof($fp)) //文件全部要讀完
{
$buffer=fgets($fp,1024); //獲得一行
$period = explode(",",$buffer); //以逗號分隔分行內(nèi)容
if($period[6]!=1){ //找到第7部分的內(nèi)容,如果不是1,就輸出當然這個也是開關(guān),你可以設(shè)置為1時輸出
echo $buffer."br";
}
}
fclose($fp); //關(guān)閉文件流
?
PHP隨機讀取TXT文件的某一行,基本思路是這樣的:獲得總行數(shù)、產(chǎn)生隨機數(shù)、獲得隨機行,例子代碼如下:
?php
$f='1.txt';//文件名
$a=file($f);//把文件的所有內(nèi)容獲取到數(shù)組里面
$n=count($a);//獲得總行數(shù)
$rnd=rand(0,$n);//產(chǎn)生隨機行號
$rnd_line=$a[$rnd];//獲得隨機行
echo?"$rnd?/?$n?:?$rnd_line?\n";?//顯示結(jié)果
?
以上程序在我的電腦上執(zhí)行幾次的結(jié)果如下:
E:\TEMP\文件\expa.php
1?/?8?:?[00:05.33]你拿什么來愛我2
E:\TEMP\文件\expa.php
3?/?8?:?acfp6o7ib----803sb7rmvz----1525175080=
E:\TEMP\文件\expa.php
1?/?8?:?[00:05.33]你拿什么來愛我2
E:\TEMP\文件\expa.php
1?/?8?:?[00:05.33]你拿什么來愛我2
E:\TEMP\文件\expa.php
5?/?8?:?bxi2jw97----0vaf3bw17s----1525184793=
有二種方法可以實現(xiàn),分別如下:
第一種:
?php??
$file_path?=?'xxx.txt';?//文件路徑??
$line?=?0?;?//初始化行數(shù)??
//打開文件??
$fp?=?fopen($file_path?,?'r')?or?die("open?file?failure!");??
if($fp){??
//獲取文件的一行內(nèi)容,注意:需要php5才支持該函數(shù);??
while(stream_get_line($fp,8192,"\n")){??
$line++;??
}??
fclose($fp);//關(guān)閉文件??
}??
//輸出行數(shù);??
echo?$line;??
?
第二 種:
?php??
$line?=?count(file('filename'));??
echo?$line;??
?
如果直接使用file_get_contents來讀取文件,那么在文件很大的時候會很占內(nèi)容,比如這個文件有1GB的時候。
這個時候使用傳統(tǒng)的文件操作方式就好的多,因為是查找嘛,逐行讀取匹配應(yī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);
?php
$c?=?getLine('./a.txt',?10);?//?讀取a.txt文件第10行內(nèi)容
echo?$c;
/**
*?獲取指定行內(nèi)容
*
*?@param?$file?文件路徑
*?@param?$line?行數(shù)
*?@param?$length?指定行返回內(nèi)容長度
*/
function?getLine($file,?$line,?$length?=?4096){
$returnTxt?=?null;?//?初始化返回
$i?=?1;?//?行數(shù)
$handle?=?@fopen($file,?"r");
if?($handle)?{
while?(!feof($handle))?{
$buffer?=?fgets($handle,?$length);
if($line?==?$i)?$returnTxt?=?$buffer;
$i++;
}
fclose($handle);
}
return?$returnTxt;
}
網(wǎng)站欄目:php取文件行數(shù)據(jù) php從數(shù)據(jù)庫取數(shù)據(jù)輸出
瀏覽路徑:http://www.rwnh.cn/article32/doohjsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站設(shè)計公司、虛擬主機、商城網(wǎng)站、微信公眾號、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)