Bastian: Problem mit explode

Hallo,

ich möchte ein User-Homepage-Script anpassen.
Die Daten werden in einer .txt-Datei gespeichert, die wie folgt aufgebaut ist:

||email@censored.de||#000000<|>#FFFFFF<|>#555555<|>#FFFFFF<|>#777777<|>#000000<|>#AAAAAA<|>Hier der Text<|bi|>bild.gif<|><|gb|><|gb|>Gästebucheintrag<|gb|><|gbend|><|>||

Es ist nur ein Textfeld zum Editieren vorgegeben, ich möchte aber vier realisieren.

Im Originalscript sieht das so aus:

---------------------------------------------------------------------
$dat = file("user/$nick.txt");
$dat2 = explode("||", $dat[count($dat) - 1]);
$dat3 = explode("<|>", $dat2[2]);
$dat4 = explode("<|bi|>", $dat3[7]);

echo "<form method="post" action="inhalt.php?sav=sav3">
<input type="hidden" name="nick" value="$nick">
<textarea name="texten">$dat4[0]</textarea>
<br>
<b>Bild:</b> <input type="text" name="bild" value="$dat4[1]"><br><br>
<input type="submit" value="Speichern"></form></center>";
}

if($sav == "sav3"){

$dat = file("user/$nick.txt");
$dat2 = explode("||", $dat[count($dat) - 1]);
$dat3 = explode("<|>", $dat2[2]);

if(strlen($texten)<2){
$texten= "Hier der Text";
}
$texten = preg_replace("/\r\n|\n/s","", $texten);

$texten = "$texten<|bi|>$bild";

foreach($dat as $date){
$daten = str_replace("$dat3[7]","$texten","$date");
}

$data = fopen("user/$nick.txt","w+");
fputs($data,"$daten");
fclose($data);
---------------------------------------------------------------------

Was muss ich korrigieren, um 4 editierbare Textfelder zu ermöglichen?
Wäre für Hilfe sehr dankbar.

Bastian

  1. hi,

    Was muss ich korrigieren, um 4 editierbare Textfelder zu ermöglichen?

    noch drei zusätzliche <texareas> ausgeben :-)

    _welche_ der oben genannten daten du in welcher dieser textareas bearbeiten willst, hast du ja leider bisher nicht definiert ...

    gruss,
    wahsaga

    1. Nachricht lesen
      Ursprüngliche Nachricht zum Thema:  (PHP) Problem mit explode von wahsaga, 27. November 2003, 17:14
      Die folgende Nachricht zum Thema stammt von: Bastian, 27. November 2003, 21:10

      Hallo,

      noch drei zusätzliche <texareas> ausgeben :-)

      Na klar, aber welche Variablen muss ich bei den anderen 3 Textareas angeben und wie muss ich die Scriptbefehle ändern, damit auch die 3 anderen Strings richtig in die .txt-Datei zusammengefügt werden und später wieder auseinandergepflückt werden können?

      _welche_ der oben genannten daten du in welcher dieser textareas >>bearbeiten willst, hast du ja leider bisher nicht definiert ...

      Es geht nur um die Stelle "<|>Hier der Text<|>", die mit dem explode-Befehl extrahiert wird und später wieder eingefügt wird.
      Es soll nachher also "<|>Hier Text1<|>Text2<|>Text3<|>Text4<|>in der .txt-Datei stehen. Meine Frage ist also, wie die 3 anderen Variablen lauten müssen und was bei explode stehen muss, damit alles einzelnd zerstückelt und wieder richtig zusammengesetzt wird.

      Mit dem explode-Befehl kenne ich mich leider überhaupt nicht aus. Ich hoffe, ihr versteht meine Frage nun besser.
      Freue mich immer noch über weitere Hilfe.

      Vielen Dank

      Bastian

      1. Hi
        Handbuch hilft!
        Zum Verständniss probiere mal dies aus.
        $string = "Teil|Teil2|Teil3|Teil4|Teil5|Teil6";
        $arr = explode ("|", $string);
        print_r ($arr);

        Also Array mir Foreach zerlegen!
        Viele Grüße
        TomIRL

        1. Es hat ein paar Tage Kopfzerbrechen gebraucht, aber ich hab ne einfachere Lösung gefunden.

          Ich hab den extrahierten Textpart einfach durch Trennzeichen in 4 Teile getrennt und mit einem weiteren explode zerlegt und nachher mit

          $texten ="§text1<§>$text2<§>$text3<$>text4"
           wieder zusammengefügt.

          Manchmal ist es einfacher, als man zunächst glaubt.

          Liebe Grüße aus Köln

          Bastian