Lumpy89 Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 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>"; */ ?> Zitieren
Crash2001 Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 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? Zitieren
Lumpy89 Geschrieben 12. Februar 2009 Autor Geschrieben 12. Februar 2009 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.. Zitieren
T3D Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 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) Zitieren
Crash2001 Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 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... Oder verstehe ich dich da falsch, dass das gar nicht in der stadt_lg.txt überschrieben wird, sondern wo anders? Zitieren
Lumpy89 Geschrieben 12. Februar 2009 Autor Geschrieben 12. Februar 2009 Danke erstmal, werde mal versuchen das in die tat umzsetzen... Zitieren
T3D Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 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... 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 Zitieren
Lumpy89 Geschrieben 12. Februar 2009 Autor Geschrieben 12. Februar 2009 Sinn vestehe ich auch nicht ganz, geht eher ums prinzip xD Zitieren
Crash2001 Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 Logisch kommt mir das dennoch nicht vor... Zitieren
Lumpy89 Geschrieben 12. Februar 2009 Autor Geschrieben 12. Februar 2009 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>"; ?> Zitieren
T3D Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 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] Zitieren
Crash2001 Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 [...]koenntest natuerlich auch noch die zuweisung in eine funktion auslagern dann waere die retuntantheit (gibts das? o.O) nich mehr vorhanden[...]Redundantheit = Redundanz? Zitieren
T3D Geschrieben 12. Februar 2009 Geschrieben 12. Februar 2009 Redundantheit = Redundanz? mir is halt das nomen zu redundant ned eingefallen Zitieren
Empfohlene Beiträge
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.