㈠ php逐行讀取文件,逐行修改文件,刪除指定行
修改和刪除指定行,我們一般用file將文件內容讀取到數組中,根據數字索引比較容易修改,但是你要求用文件指針,這個比較麻煩,不管你用的是filesystem的函數還是spl類函數,都不可避免一個問題,對一個文件流操作,最多替換流中間的某一段內容,不可能實現插入,又不是c語言的鏈表,
//修改第二行內容
$f=fopen('test.txt','r+');
$i=1;
while(!feof($f)){
if($i==2){
fseek($f,0,SEEK_CUR);
fwrite($f,'aad');//這里的修改是替換形式,如果修改後這一行的長度比原來短,那麼可以用空格填充到原來長度,這樣實現修改,而且不影響後面的內容,但是修改後的比原來長就麻煩了,
break;
}
fgets($f);
$i++;
}
fclose($f);
//刪除行同修改行一樣,只不過是將原來行替換為同等長度的空格串
$f=fopen('test.txt','r+');
$j=1;
while(!feof($f)){
if($j==2){
$row=fgets($f);
$len=strlen($row);
echoftell($f)-$len."<br>";
fseek($f,ftell($f)-$len);
fwrite($f,str_pad('',$len,''));
break;
}
fgets($f);
$j++;
}
fclose($f);
㈡ PHP里如何讀取文件的指定一行
<?php
$c=getLine('./a.txt',10);//讀取a.txt文件第10行內容
echo$c;
/**
*獲取指定行內容
*
*@param$file文件路徑
*@param$line行數
*@param$length指定行返回內容長度
*/
functiongetLine($file,$line,$length=4096){
$returnTxt=null;//初始化返回
$i=1;//行數
$handle=@fopen($file,"r");
if($handle){
while(!feof($handle)){
$buffer=fgets($handle,$length);
if($line==$i)$returnTxt=$buffer;
$i++;
}
fclose($handle);
}
return$returnTxt;
}
㈢ php讀取txt文件指定行的內容並顯示
<?php
$handle = @fopen("1.txt", "r");
$str="";
if ($handle) {
for($i=0;$i++;$i<3){
$buffer = fgets($handle, 4096);
if(strpos($buffer,"aaaa")!==false){
$str.= $buffer;
}elseif(strpos($buffer,"bbbb")!==false){
$str.= "[".$buffer."]";
}elseif(strpos($buffer,"cccc")!==false){
$str.= "(".$buffer.")";
}
}
fclose($handle);
}
echo $str;
?>
㈣ php怎麼一行一行的讀取字元串
php fgets將txt文件內容一行一行的讀出
說明
string fgets ( int $handle [, int $length ] )
從 handle 指向的文件中讀取一行並返回長度最多為 length - 1 位元組的字元串。碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 位元組後停止(看先碰到那一種情況)。如果沒有指定 length,則默認為 1K,或者說 1024 位元組。
出錯時返回 FALSE。
通常的缺陷:
習慣了 C 語言中 fgets() 語法的人應該注意到 EOF 是怎樣被返回的。
文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開的文件(並還未由 fclose() 關閉)。
以下是一個簡單例子:
<?php
$handle=@fopen("/tmp/inputfile.txt","r");
if($handle){
while(!feof($handle)){
$buffer=fgets($handle,4096);
echo$buffer;
}
fclose($handle);
}
?>
㈤ php逐行讀取txt文件內容,並把內容放到輸入框里,一行內容對應一個輸入框
<?php
header("Content-type:text/html;charset=utf-8");
$f_open = fopen('aaa.txt','w+'); //打開文件
if(isset($_POST['submit'])){ //判斷,如果點了提交按鈕則執行以下代碼
fwrite($f_open,$_POST['txt']); //寫入文件,內容為文本域傳過來的值
}
?>
<!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的內容
?>
</textarea>
<input type="submit" name="submit">
</form>
</body>
</html>
<?php
fclose($f_open); //關閉文件
?>