Na zápis do svojho súboru používam nižšie uvedený kód PHP wall.txt
spis. Funguje to dobre, ale problém je v tom wall.txt
veľkosť súboru sa neustále zvyšuje. chcem orezať wall.txt
súbor, akonáhle sú nové údaje pridané za 3 odseky. starý odsek bude odstránený, zatiaľ čo budú pridané nové
tu je php súbor
<?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);
?>
tu je textový súbor
Chlapec: Riaditeľ je taký hlúpy! / -% / Dievča: Viete, kto som? / -% / Chlapec: Nie ... / -% / Dievča: Som riaditeľova dcéra! / -% / Chlapec: Viete kto Som? / -% / Dievča: Nie ... / -% / Chlapec: Dobré! odchádza| Piatok, 17:23:04 hod **** Chlapec: volá 911 Ahoj? Potrebujem tvoju pomoc!/ -% / 911: Dobre, čo to je? / -% / Chlapec: Dve dievčatá sa o mňa bijú! / -% / 911: Tak čo je tvoje pohotovosť? / -% / Chlapec: Škaredý vyhráva. | Piatok, 17:36:19 hod **** Najbližšie, čo som bol tento rok v diéte, je mazanie vyhľadávaní potravín z mojej histórie prehliadača ./-%//-%/Lollzzzzzz: p | piatok, 17:44:35 hod
odpovede:
0 pre odpoveď č. 1Riešenie pomocou file
a array_slice
funkcie:
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));