variable auseinandernehmen

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

  • variable auseinandernehmen

    hallo phpler,

    wie würdet ihr folgenden ausdruck:

    PHP-Code:
    $var "<STRONG><FONT color=#ff0000>testeintrag</FONT></STRONG>"
    so auseinandernehmen, dass 3 variablen übrigbleiben:
    PHP-Code:
    1$var1 "<STRONG><FONT color=#ff0000>";
    2$var2 "testeintrag";
    3$var3 "</FONT></STRONG>"
    auf den inhalt von $var habe ich keinen einfluss.
    ich muss, nachdem "testeintrag" geändert ist, alles wieder zu $var
    zusammensetzen.

    mit explode komme ich nicht weiter, mir fehlt ein trennzeichen, zeichen
    zählen kann ich auch nicht, weil ich nicht weiss, wie lang $var1, $var2 und
    $var3 jeweils sind, und was anderes fällt mir nicht ein....

    vielleicht hat jemand eine idee?

    wolfgang

  • #2
    Aber es ist im Prinzip immer ein <strong> und ein <font> tag?
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      nein, leider nicht.

      $ var könnte auch mal so aussehen:
      PHP-Code:
      $var ="<FONT size=1>testeintrag</FONT>";
      oder im schlimmsten fall so:
      $var ="<P align=center><STRONG><FONT size=5><FONT face="VerdanaArialHelveticasans-serif" color=#993333>testeintrag</FONT> </FONT></STRONG></P>"
      wie gesagt, ich habe auf die entstehung und den inhalt der variablen keinen einfluss
      (wird von einem ziemlich komplexen javascript erzeugt).
      wolfgang

      Kommentar


      • #4
        also wie ich das sehe bleibt "testeintrag" immer gleich ?
        dh das brauchst auch in keiner variable zu speichern weils eh immer testeintrag heisst ?

        PHP-Code:
        $vars explode("testeintrag"$var);
        print_r($vars); 
        oder so:

        PHP-Code:
        preg_match("/(.*)(testeintrag)(.*)/"$var$vars);
        print_r($vars); 
        oder sollte auch "testeintrag" beliebig anders sein:

        PHP-Code:
        preg_match("/(.*)(>.*<)(.*)/"$var$vars); // >testeintrag< bleibt ja immer
        print_r($vars); 
        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar


        • #5
          @ Coragon,

          danke erst einmal für die antwort!

          was macht "print_r"?

          ich finde im handbuch nichts.

          zur klarstellung: "testeintrag" ist nicht immer gleich!

          gruss, wolfgang

          Kommentar


          • #6
            es mag zwar nicht sehr elegant sein, aber so klappt es:

            der ganze string $var wird mit "strip_tags" auf "testeintrag" reduziert ($var2).

            nun kann ich mit $var2 "testeintrag" als trennzeichen und "explode" den originalstring in zwei teile zerlegen ($var1 und $var3)

            nachdem $var2 "testeintrag" bearbeitet wurde, füge ich alles wieder zusammen: $var = $var1.$var2.$var3;

            wie gesagt, unelegant, aber es klappt.

            gruss wolfgang

            Kommentar


            • #7
              hmm .. also es gibt echo und es gibt print
              dann gibts print_r, die rekursve variante ..

              damit kannst halt arrays schön ausgeben, fein zum debuggen und checken ob arrays auch so aussehen wie du es dir vorstellst und so

              http://php.net/print_r
              mfg,
              [color=#0080c0]Coragon[/color]

              Kommentar


              • #8
                Alternative:

                1. gesammter String: $var[0]
                2. Auf "testeintrag" reduzieren: $var[1], in $var[2] den geänderten Text.
                3. Dann einfach $var[1] durch $var[2] in $var[0] ersetzen.


                Was man eigentlich vorher bedenken sollte:
                I.d.R. werden in PHP nur Werte verarbeitet. Formatierungen werden erst bei der Ausgabe benutzt.

                Weiß ja nicht, wofür du es benutzt, aber in den meisten Fällen geht das.

                Kommentar


                • #9
                  danke noch einmal für die antworten.

                  ich denke, ich komme jetzt klar.

                  hintergrund:
                  ich habe ein javascript, das textfelder in editoren "verwandelt".

                  in meinem projekt wird nun an einer stelle ein firmenname eingegeben, der an einer anderen stelle mit hilfe des js formatiert werden kann.

                  nachdem der name aber einmal formatiert wurde, werden auch in der ursprünglichen maske nicht nur der name, sondern auch die formatierungen mit angezeigt.

                  aber das ist ja jetzt gelöst.

                  falls jemand so ein feature sucht:

                  http://www.interactivetools.com/products/htmlarea/

                  danke noch einmal, gruss, wolfgang

                  Kommentar

                  Lädt...
                  X