Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Daten aus Datei löschen

Empfohlene Antworten

Veröffentlicht

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>"; */

?>

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?

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..

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)

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?

Danke erstmal, werde mal versuchen das in die tat umzsetzen...

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

Sinn vestehe ich auch nicht ganz, geht eher ums prinzip xD

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>";

?>

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]

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.