Hallo Zusammen,
es handelt sich bei dieser Geschichte um ein Link-Formular, um Internetadressen/Links mit einem Namen zu verstehen und über eine Textdatei zu archivieren. - Das klappt auch alles, bis auf das löschen und die Einträge nach oben rutschen. Denn dann kann ich die Zeilen vor der angesprochenen ID (wenn dieser höher liegt) nicht mehr entfernen.
Nachfolgend der Code, der die Zeile ans Ende der Textdatei "Thema.txt" schreibt, wenn beide Einträge wahr sind. Anschließend wird zur Weiterverarbeitung in die index.php zurückverlinkt.
Die "Thema.txt" sieht so aus:
Mein Problem:
Wenn Eintrag 1 und 2 gelöscht werden und der Eintrag 3 als letztes in der Textdatei steht, kann diese Zeile nicht mehr gelöscht werden, da ich ja versuche über die Array-ID die Zeile anzusprechen. Diese hat aber die "ID 3"! Das Array kann nichts in Zeile 4 finden $array[$id] = $array[3]. Ok, ist ja klar.
Ich habs mal mit sizof versucht und dann die Summe des Array mit der ID irgenwie zu addieren oder subtrahieren, um iwie auf den ersten Platz zu kommen^^ Ich verzweifel gerade daran und hoffe auf Eure einsichtige Hilfe.
LG Dennis
es handelt sich bei dieser Geschichte um ein Link-Formular, um Internetadressen/Links mit einem Namen zu verstehen und über eine Textdatei zu archivieren. - Das klappt auch alles, bis auf das löschen und die Einträge nach oben rutschen. Denn dann kann ich die Zeilen vor der angesprochenen ID (wenn dieser höher liegt) nicht mehr entfernen.
PHP-Code:
<?php
$datei = "../textdata/thema.txt";
$array = file("../textdata/thema.txt");
$linkname2 = $_POST["linkname2"];
$id = $_GET["id"];
$id--;
unset($array[$id]);
file_put_contents("../textdata/thema.txt",$array);
// header("location: ../index.php?act=del");
?>
PHP-Code:
<?php
$datei = "../textdata/thema.txt";
$linkname2 = $_POST["linkname2"];
$url2= $_POST["url2"];
$id = sizeof(file($datei));
$id++;
if ($linkname2 and $url2)
{
$fp = fopen($datei,"a");
$add = '<a href="'.$url2.'" target="_blank">'.$linkname2.'</a>'.'<a href="phpdata/link_entf.php?id='.$id.'" style="color:darkred" title="löschen">[x]</a>'."\r\n";
fwrite($fp,$add);
header("location: ../index.php?send=link");
}
HTML-Code:
<a href="link" target="_blank">Eintrag 1</a> <a href="phpdata/link_entf.php?id=1" style="color:darkred" title="löschen">[x]</a> <a href="link" target="_blank">Eintrag 2</a> <a href="phpdata/link_entf.php?id=2" style="color:darkred" title="löschen">[x]</a> <a href="link" target="_blank">Eintrag 3</a> <a href="phpdata/link_entf.php?id=3" style="color:darkred" title="löschen">[x]</a>
Wenn Eintrag 1 und 2 gelöscht werden und der Eintrag 3 als letztes in der Textdatei steht, kann diese Zeile nicht mehr gelöscht werden, da ich ja versuche über die Array-ID die Zeile anzusprechen. Diese hat aber die "ID 3"! Das Array kann nichts in Zeile 4 finden $array[$id] = $array[3]. Ok, ist ja klar.
Ich habs mal mit sizof versucht und dann die Summe des Array mit der ID irgenwie zu addieren oder subtrahieren, um iwie auf den ersten Platz zu kommen^^ Ich verzweifel gerade daran und hoffe auf Eure einsichtige Hilfe.
LG Dennis
Kommentar