Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Also ich habe folgendes Problem. Ich möchte in eine txt-Datei etwas einfügen. Wenn ich das mit fwrite mache, gibt es das Problem dass nachfolgender Text überschrieben wird. Also um es deutlich zu machen. In der txt-Datei steht folgender Text:

"Der Name lautet Mustermann."

So zwischen lautet und Mustermann soll jetzt der "Max" eingefügt werden, Wenn ich jetzt mit fopen und fseek an die Postition hinter lautet gehe und mit fwrite "Max" hinzufüge sieht das dann so aus:

"Der Name lautetMaxstermann."

Das kein Leerzeichen da is, spielt erst mal keine Rolle, entscheidend ist, dass von dem nachfolgenden Text Zeichen abgeschnitten werden. Wie kann man das Problem lösen?

Und als 2. Frage: Gibt es die Möglichkeit nach einem bestimmten Wort in der txt-datei zu suchen und dieses dann zu ersetzen? Also wenn in der Datei folgendes steht:

"Der Name lautet name Mustermann."

Das dann "name" mit "Max" ersetzt wird.

Geschrieben

Ok, dass mit der Stringverarbeitung klappt ganz gut. Jetzt bin ich auf ein weiteres Problem gestoßen. Ich möchte in der txt-Datei bestimmte Wörter ersetzen. Die Funktion dafür ist ja str_replace. Wenn ich also aus dem String ein Wort mit einem anderen ersetzen möchte, so klappt das einwandfrei. Wenn ich allerdings verschiedene Wörter ersetzen möchte, wie geht das?

Also im String steht z.B.:

Der PLATZALTER1 hat ein schönes PLATZHALTER2.

Ich möchte jetzt platzhalter1 UND platzhalter2 ersetzen. Wie krieg ich das in eine anweisung?

Geschrieben

versuch es mal mit zwei arrays in etwa so


$blab = array('schlecht', 'nicht gut');
$blub = array('toll', 'super');
$text = "Das Leben ist schlecht, aber irgendwie ist das nicht gut.";
$ausgabe = str_replace($blab, $blub, $text);

echo $ausgabe;
[/PHP]

Geschrieben

Also ich bin mal wieder einen Schritt weiter, jetzt hänge ich allerdings wieder, ich hoffe ihr könnt mir helfen, bisher waren eure Tipps immer ganz hilfreich, zumindest im mich in die richtige Richtung zu bringen.

Also vom Grundverständnis: Ich erzeuge txt-Dateien dynamisch, d.h. der Textblock der in der Datei steht kann je nach Benutzereingabe öfters wiederholt werden, nur mit anderen Platzhalternamen. Das Problem ist jetzt, dass z.B. bei 3 Elementen nicht 3 Textblöcke in die Datei schreibt sondern immer nur die Letzte, weil er in der schleife durch die "w"-option die datei immer löscht und neu reinschreibt. Jetzt sagt ihr vielleicht, dann nehm doch "r" oder "a". Das geht aber nicht so einfach, da die schleife auf jeden fall einmal mit dem "w"-attribut durchlaufen werden muss, da ich mein voriges problem mit dem mehrfachen ersetzen so gelöst habe, indem ich die datei in 2 schritten modifiziert habe. Also geöffnet, ersten platzhalter mit eingabe ersetzt, gespeichert, dann wieder geöffnet, ausgelesen, 2. platzalter mit eingabe ersetzt, und die alten daten überschrieben.

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