2016-04-09 12 views
-1

私はwall.txtファイルに以下のPHPコードを使用しています。それは正常に動作しますが、問題は、ファイルサイズが増加し続けることですwall.txtです。私は、PHPファイルであるfwrite中に.txtファイルから最後の段落を削除する

はここ
<?php 

    $joke = $_POST['AndroidString']; 


    $complexString = ($joke . "|" . date("l") . ", " . date("jS \of F Y h:i:s A")); 
    $endLineStericks = "****"; 


     $registrationFile = fopen("wall.txt", "a") or die("Unable to open file!"); 

    fwrite($registrationFile, $complexString); 
    fwrite($registrationFile, "\n"); 
fwrite($registrationFile, $endLineStericks); 
fwrite($registrationFile, "\n"); 

fclose($registrationFile); 


    ?> 

新しいものがここに

を付加している間に3 paragraphs.old段落が削除された後、新しいデータが追加されるとwall.txtファイルをトリミングしたいテキストファイル

です/%/少年: いいえ.../- %/女の子:私はプリンシパルの娘です!/ - %/少年:私は誰ですか?/%/少年:

少年:男の子:あなたは誰ですか? 私はいますか?/ - %/女の子:いいえ.../- %/少年:いいです! 散歩を離れて |金曜日、05:23:04 pm ****少年:お電話911こんにちは?あなたの助けが必要です/%/ 911:それはなんですか?/%/少年:2人の女の子が私と戦っています/%/ 911:あなたの は何ですか? |金曜日、05:36:19 pm ****今年の食べ物に一番近いのは、ブラウザの履歴から食品の検索を消去することです./-%//-%/Lollzzzzz:p | filearray_slice機能を使用して金曜日、 午前5時44分35秒午後


+1

これは基本的に*ログインrotatするための技術でありますイオン*。スニペットと説明の例は、[この記事で](https://snippetsofcode.wordpress.com/2011/08/09/rotating-log-php/)にあります。 – GolezTrol

+0

'wall.txtファイル'に3つの段落だけを常時保存したいですか? – RomanPerekhrest

+0

@RomanPerekhrestはい。最新の3つの段落が削除されます。 – paytm

答えて

0

ソリューション:

define("WALL", "wall.txt"); 
$joke = $_POST['AndroidString']; 

fopen(WALL, 'a') || die("Failed to open file!"); 
$contents = file(WALL); // gets file contents as array of strings(lines) 

$complexString = ($joke . "|" . date("l") . ", " . date("jS \of F Y h:i:s A")). PHP_EOL; 
$endLineStericks = "****" . PHP_EOL; 

$contents = array_merge($contents, [$complexString, $endLineStericks]); 

// if there were at least three records(including end stricks) in wall.txt 
if (count($contents) > 6) { 
    $contents = array_slice($contents, -6); // getting last three records 
} 
file_put_contents(WALL, implode("", $contents)); 
+0

で終わりますこの行はエラーを返しますarray_merge – paytm

+0

そのtxtファイルの内容はすべて削除され、何も書き込まれません – paytm

+0

"この行はエラーarray_merge"を出力します。 – RomanPerekhrest

関連する問題