Koden
Här är ett simpelt script som tar bort en rad ur en speciell txt-fil och istället skriva in något helt annat. Det kan vara bra om du te.x vill att admins ska kunna ta bort / ändra inlägg i ditt forum eller din gästbok.
Här är koden för att ta bort en rad:
<?php
$fil = "fil.txt"; // Filen där raden ska tas bort!
$rad = "1"; // Raden som ska tas bort. Tänk på att rad 0 räknas!
$input = "<---"; // Det som ska skrivas på raden istället!
$nasta = "nasta_sida.php"; // Sidan som man ska komma till sedan!
$cont = file($fil); // Läser in filen till en array
$fh = fopen($fil, "w+"); // Öppnar filen
for($i=0; ; $i++) {
if($cont[$i] == '') {break;} else {
if($i == $rad) {
fwrite($fh, "$input\r\n"); } else {
fwrite($fh, $cont[$i]); }
}
}
fclose($fh); // Stänger filen
header("location: $nasta"); // Skickar vidare till nästa sida
exit; // Stoppar koden
?>
Om du istället vill att man ska kunna bestämma vilken rad som ska tas bort genom en typ av meny
så skulle jag göra såhär:
<?php
if (isset($_POST['rad'])) {
$fil = "fil.txt"; // Filen där raden ska tas bort!
$input = "<---"; // Det som ska skrivas på raden istället!
$nasta = "nasta_sida.php"; // Sidan som man ska komma till sedan!
$rad = $_POST['rad'];
$cont = file($fil); // Läser in filen till en array
$fh = fopen($fil, "w+"); // Öppnar filen
for($i=0; ; $i++) {
if($cont[$i] == '') {break;} else {
if($i == $rad) {
fwrite($fh, "$input\r\n"); } else {
fwrite($fh, $cont[$i]); }
}
}
fclose($fh); // Stänger filen
header("location: $nasta"); // Skickar vidare till nästa sida
exit; // Stoppar koden
} else {
echo"<form method=\"post\">
Rad som ska tas bort: <input type=\"text\" name=\"rad\"> <input type=\"submit\" value=\"Ta Bort!\">
</form>"; // Ekar ut formuläret
}
?>
Såhär funkar det
Filen som du har valt läggs i en array där den loopar igenom hela innehållet och om $i (raden som
för tillfället blir läst) är det samma som $rad (raden som ska tas bort) så skrivs raden helt enkelt
inte in i filen utan istället skrivs $input in.