2015-05-18 76 views
1

我看到using fseek to insert string before last line這個問題,但這並不能解決我的問題。我不使用「?>」標籤。 PHP版本PHP 5.4如何在最後一行之前插入字符串?

example line1 
example line2 
//i need insert here 
lastline $eg}; 

我的代碼工作,但是這是所有行後加入空行:

$filename = 'example.php'; 
    $arr = file($filename); 
    if ($arr === false) { 
     die('Error' . $filename); 
    } 
array_pop($arr); 
file_put_contents($filename, implode(PHP_EOL, $arr)); 
/// I'm deleting last line here 


$person = "my text here\n"; 
file_put_contents($filename, $person, FILE_APPEND); 
$person = "andherelastline"; 
file_put_contents($filename, $person, FILE_APPEND); 
//and then add again here 
+0

你讀過的函數['文件()'](文檔HTTP ://php.net/manual/en/function.file.php)?在「返回值」一節中,它明確指出:*「數組中的每個元素對應於文件中的一行,**換行符仍附加**。」*。您獲得的額外行由'implode(PHP_EOL,$ arr)'添加。將空字符串('''')作爲第一個參數傳遞給'implode()',額外的行將消失。 – axiac

回答

3
$file = "tmp/saf.txt"; 
$fc = fopen($file, "r"); 
while (!feof($fc)) { 
    $buffer = fgets($fc, 4096); 
    $lines[] = $buffer; 
} 

fclose($fc); 

//open same file and use "w" to clear file 
$f = fopen($file, "w") or die("couldn't open $file"); 

$lineCount = count($lines); 
//loop through array writing the lines until the secondlast 
for ($i = 0; $i < $lineCount- 1; $i++) { 
    fwrite($f, $lines[$i]); 
} 
fwrite($f, 'Your insert string here'.PHP_EOL); 

//write the last line 
fwrite($f, $lines[$lineCount-1]); 
fclose($f); 
+0

我試過了,但是永久循環:(並且在我的文本文件中聽到了所有行 –

+0

因爲我在我的手機上,所以我現在無法測試代碼,但我編輯了代碼 – eol

+0

好的,現在應該可以使用 – eol

相關問題