explode - trennzeichen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • explode - trennzeichen

    ich versuche, einen string in drei teile zu zerlegen.
    1. alles vor "mein Text", 2. "Mein Text", 3. alles nach "Mein Text".

    string:
    PHP-Code:
    $string "<FONT face='Arial' color=#ff0000><STRONG>Mein Text</STRONG></FONT>"
    1. schritt:
    PHP-Code:
    $separator strip_tags($string); 
    ergibt --> "Mein Text"

    "Mein Text" möchte ich nun als separator in explode einsetzen, um die anderen beiden stücke zu erhalten:
    2. schritt:
    PHP-Code:
    list($part_1,$part_2) = explode($separator,$string); 
    erwartet:
    $part_1 --> "<FONT face='Arial' color=#ff0000><STRONG>"
    $part_2 --> "</STRONG></FONT>"

    ergibt jedoch lediglich in $part_1 den kompletten originalen string.
    $part_2 ist leer.

    kann der operator ($separator) evtl. nur mit einem zeichen umgehen?

    wie könnte man das problem sonst angehen?

    gruss, wolfgang

  • #2
    laß dir mal den wert von $separator ausgeben
    eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

    Kommentar


    • #3
      @ slarti,
      na was glaubst du, was ich mache, bevor ich hier poste?

      $separator ergibt wunschgemäss "Mein Text", schrieb ich ja auch.

      Kommentar


      • #4
        Hi,
        hab dies mit dem was du hier gepostet hast mal versucht.

        PHP-Code:
        <?
          $string = "<FONT face='Arial' color=#ff0000><STRONG>Mein Text</STRONG></FONT>";
          $separator = strip_tags($string);
          list($part_1,$part_2) = explode($separator,$string);

         echo $part_1;
         echo $part_2;
        ?>
        Und dies hier ist mein Ergebnis:
        <FONT face='Arial' color=#ff0000><STRONG>
        </STRONG></FONT>

        Also so wie du es wolltest...
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          @ Günni,

          danke für's testen.
          muss jetzt leider weg, melde mich später.
          der fehler scheint dann im original-script zu stecken.

          gruss, wolfgang

          Kommentar


          • #6
            noch einmal das problem:

            aus der db kommt folgender eintrag:
            <STRONG><FONT face="Verdana, Arial, Helvetica, sans-serif" size=4>Mein Text</FONT></STRONG></FONT>
            im folgenden als $text bezeichnet.

            "Mein Text" soll in einem input-feld geändert werden und der geänderte eintrag soll dann wieder mit den formatierungen kominiert werden:
            $neu = $part_1.$separator.$part_2;

            mein testcode:
            PHP-Code:
            <?php
            $separator 
            strip_tags($text);

            list(
            $part_1,$part_2) = explode($separator,$text);

            echo 
            "part_1: <input type='text' name='var1' size='130' value='$part_1'><br><br>";
            echo 
            "separator: <input type='text' name='var2' size='45' value='$separator'><br><br>";
            echo 
            "part_2: <input type='text' name='var3' size='45' value='$part_2'><br><br>";

            $neu $part_1.$separator.$part_2;
            echo 
            "neu: <input type='text' name='var1' size='130' value='$neu'><br><br>";
            ?>
            testergebnis:
            $part_1 gibt den kompletten string wieder
            $separator --> Mein Text
            $part_2 --> leer

            es funktioniert, wenn die hochkommata (egal ob einfach oder doppelt) der schriftdefinition aus dem db-feld entfernt werden.

            leider habe ich keinen einfluss auf den inhalt des datenbankfeldes.

            versuche mit addslashes() oder str_replace() etc. blieben erfolglos.

            ideen?

            Kommentar


            • #7
              Schreib die Hochkommas mal so: \' oder \"
              mfg
              Günni


              Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
              Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
              Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
              City-Tiger - Online durch die Straßen tigern...

              Kommentar


              • #8
                ja, habe ich natürlich auch probiert, aber an einer ecke scheitert es immer.

                ich habe das ganze jetzt anders gelöst:
                mit strip_tags hole ich mir "Mein Text" und entferne leerszeichen mit trim.
                im input-feld wird ein neuer text definiert: "Mein neuer Text".

                diesen füge ich mit str_replace anstelle von "Mein Text" in den ursprungs-string ein.

                klappt einwandfrei und ist ein wenig "eleganter".

                danke für die vorschläge!

                Kommentar

                Lädt...
                X