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