Zum Inhalt springen

PHP Daten aus Datei löschen


Empfohlene Beiträge

Hallo erstmal,

das Skript soll die Datei stadt_lg.txt öffnen, was auch klappt.

Dann soll es überprüfen, ob es das was ich eingegeben habe schon in der Datei existiert. Wenn Ja, dann soll dieser Eintrag überschrieben/gelöscht werden. Ansonsten soll er nichts machen, nacher nur noch den Inhalt der Datei ausgeben.

<?php

$filename = 'stadt_lg.txt';

$handle = fopen($filename, "a+");

$Feld1 = "";

$Feld2 = "";

$Feld3 = "";

$Feld4 = "";

If (isset($_GET['submit'])and is_writeable($filename))

{

If (!empty($_GET['Feld1'])and !empty($_GET['Feld2'])and !empty($_GET['Feld3'])and !empty($_GET['Feld4']))

{

$daten = file('stadt_lg.txt');

for($i = 0; $i < count($daten); $i++)

{

$ausgabe = explode(";", $daten[$i]);

If ($_GET['Feld2'] != trim($ausgabe[1]))

{ ?????

}

Else

{ ?????

}

}

$handle = fopen($filename, "a+");

for($i = 0; $i < count($daten2); $i++)

{

$ausgabe = explode(";", $daten2[$i]);

$string = $ausgabe[0]and $ausgabe[1]and $ausgabe[2]and $ausgabe[3];

fwrite ($handle, $string);

}

fclose ($handle); */

}

}

$daten = file('stadt_lg.txt');

echo "<table>";

for($i = 0; $i < count($daten); $i++)

{

$ausgabe = explode(";", $daten[$i]);

echo "<tr>";

foreach ($ausgabe as $wert)

{

echo "<td>";

echo $wert;

echo "</td>";

}

echo "</tr>";

}

echo "</table>"; */

?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also verstehe ich das richtig, dass wenn <?PHP [...] ?> drin steht, das ersetzt werden soll?

Falls ja, kannst du einfach sagen, er soll von "<?PHP" bis "?> " alles löschen und einfach deinen Text einfügen. Falls nur das in der Datei drin stehen kann, kannst du natürlich auch einfach die Datei löschen und neu anlegen mit dem richtigen Inhalt...

Mit welcher Sprache soll das gemacht werden? Auch mit PHP, oder mit etwas anderem?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ne leider nicht ^^

Sorry habs auch etwas bedürftig erklärt, neuer Versuch.

Wir haben unter /httpdocs ne Textdatei liegen names "stadt_lg.txt"

Wir geben in 4 Felder jeweils Land, Stadt, Längengrad und Breitengrad ein.

Die Eingabe soll in die Textdatei geschrieben werden.

Die Textdatei sieht dann nacher so aus:

Deutschland;Itzehoe;123123;234234

Griechenland;Athen;34234,234

.

.

.

Wenn in dieser Textdatei schon die Stadt vorhanden ist, welche ich eingebe, dann soll er diesen Eintrag überschreiben, also:

Ich gebe ein Deutschland;Itzehoe....

Dann soll er aus der Textdatei "Deutschland;Itzehoe;123123;234234" löschen und meine Neue Eingabe speichern..

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich wuerd den ablauf in etwa so gestalten ->

file in ein array lesen (guck dir mal fgetcsv() an):

array( zeile => daten => array());

du guckst ob du in diesem array deinen neuen eintrag findest

wenn ja ueberschreibe diesen im array

ganz am ende ueberschreibst du die datei mit deinem array, also komplett (kann dir hier auch fputcsv() empfehlen)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber wieso soll der Eintrag überhaupt überschrieben werden in der stadt_lg.txt? :confused:

Ich mein - Längen- und Breitengrad sollte doch das gleiche sein und somit der Eintrag mit den selben Daten wieder überschrieben werden. Da kann ich einfach keinen Sinn bei sehen... Sinnvoll wäre es doch eher, wenn das nicht drin steht, es einzufügen, statt wenns drin steht es zu überschreiben... :rolleyes:

Oder verstehe ich dich da falsch, dass das gar nicht in der stadt_lg.txt überschrieben wird, sondern wo anders?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber wieso soll der Eintrag überhaupt überschrieben werden in der stadt_lg.txt? :confused:

Ich mein - Längen- und Breitengrad sollte doch das gleiche sein und somit der Eintrag mit den selben Daten wieder überschrieben werden. Da kann ich einfach keinen Sinn bei sehen... Sinnvoll wäre es doch eher, wenn das nicht drin steht, es einzufügen, statt wenns drin steht es zu überschreiben... :rolleyes:

Oder verstehe ich dich da falsch, dass das gar nicht in der stadt_lg.txt überschrieben wird, sondern wo anders?

stell es dir so vor als wenn der stadtname der PR Key aus ner Sql tabelle ist.

und du sagst selbst "Ich mein - Längen- und Breitengrad sollte" <3

Link zu diesem Kommentar
Auf anderen Seiten teilen

es funktioniert jetzt mit nem kleinen schöhneitsfehler....

<?php

$filename = 'stadt_lg.txt';

$handle = fopen($filename, "a+");

$Feld1 = "";

$Feld2 = "";

$Feld3 = "";

$Feld4 = "";

If (isset($_GET['submit'])and is_writeable($filename))

{

If (!empty($_GET['Feld1'])and !empty($_GET['Feld2'])and !empty($_GET['Feld3'])and !empty($_GET['Feld4']))

{

$daten = file('stadt_lg.txt');

for($i = 0; $i < count($daten); $i++)

{

$ausgabe = explode(";", $daten[$i]);

If ($_GET['Feld2'] != trim($ausgabe[1]))

{$neu[] = $daten[$i];

}

Else

{ $check =""; }

}

$handle = fopen($filename, "w+");

for($i = 0; $i < count($neu); $i++)

{

$ausgabe = explode(";", $neu[$i]);

$string = $ausgabe[0].";".$ausgabe[1].";".$ausgabe[2].";".$ausgabe[3];

fwrite ($handle, $string);

}

If (isset($check))

{ echo "Dieser Eintrag wurde überschrieben"; }

Else

{ $handle = fopen($filename, "a+");

echo "Sie haben alles ausgefüllt";

$string = "\n".$_GET['Feld1'].";".$_GET['Feld2'].";".$_GET['Feld3'].";".$_GET['Feld4'];

fwrite ($handle, $string);

}

fclose ($handle);

}

}

$daten = file('stadt_lg.txt');

echo "<table>";

for($i = 0; $i < count($daten); $i++)

{

$ausgabe = explode(";", $daten[$i]);

echo "<tr>";

foreach ($ausgabe as $wert)

{

echo "<td>";

echo $wert;

echo "</td>";

}

echo "</tr>";

}

echo "</table>";

?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

es funktioniert jetzt mit nem kleinen schöhneitsfehler....

der waere ?

so in der art wuerd ich es nach deinem "style" machen

koenntest natuerlich auch noch die zuweisung in eine funktion auslagern dann waere die retuntantheit (gibts das? o.O) nich mehr vorhanden

If (isset($_GET['submit'])and is_writeable($filename))
{
If (!empty($_GET['Feld1'])and !empty($_GET['Feld2'])and !empty($_GET['Feld3'])and !empty($_GET['Feld4']))
{
echo "Sie haben alles ausgefüllt";
$daten_gefunden = false;
$daten = file('stadt_lg.txt');
for($i = 0; $i < count($daten); $i++)
{
$ausgabe = explode(";", $daten[$i]);

If($_GET['Feld2'] == trim($ausgabe[1]))
{
echo "Dieser Eintrag wurde überschrieben";
$daten_gefunden = true;
$ausgabe[0] = $_GET['Feld1'];
$ausgabe[1] = $_GET['Feld2'];
$ausgabe[2] = $_GET['Feld3'];
$ausgabe[3] = $_GET['Feld4'];
}
$neu[] = $ausgabe;
}

if(!$daten_gefunden) {
echo "Dieser Eintrag wurde neu angelegt";
$ausgabe[0] = $_GET['Feld1'];
$ausgabe[1] = $_GET['Feld2'];
$ausgabe[2] = $_GET['Feld3'];
$ausgabe[3] = $_GET['Feld4'];
$neu[] = $ausgabe;
}

$handle = fopen($filename, "w");
foreach($neu AS $line)
{
$ausgabe = explode(";", $line[$i]);
$string = $ausgabe[0].";".$ausgabe[1].";".$ausgabe[2].";".$ausgabe[3];
fwrite ($handle, $string);
}
fclose($handle);
}
} [/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...