Susi: str_replace

Hallo

ich habe ein Problem oder ich verstehe es nicht warum er es falsch macht?

Also ich möchte über ein WYSIWG Editor ein Plugin Aufruf erzeugen.
In der Eingabe schreibe ich folgendes:

[modul="ansprechpartner"]

Dann klicke ich auf Abschicken und der String wird einem anderen Script übergeben. Das heißt das Eingabefeld heißt bei mir $content

Nun benenne ich im im String von $content modul auf $modul um.
Um dann wie oben in meinem Beispiel die den String "ansprechpartner meiner neuen Variable $modul zuzuweisen".

$content=str_replace("modul", "$modul", $content);
 $content=str_replace("]", ";]", $content);

Danach will ich meine Variable $modul mit echo aufrufen aber aber bekomme kein Wert zurück gegeben.

Woran liegt das oder wie löse ich das am besten?

Gruß Susi

  1. hi,

    Also ich möchte über ein WYSIWG Editor ein Plugin Aufruf erzeugen.

    was hat das mit php zu tun?

    In der Eingabe schreibe ich folgendes:
           [modul="ansprechpartner"]

    Dann klicke ich auf Abschicken und der String wird einem anderen Script übergeben. Das heißt das Eingabefeld heißt bei mir $content

    Nun benenne ich im im String von $content modul auf $modul um.

    warum nennst du dann das eingabefeld nicht gleich modul statt content?

    Um dann wie oben in meinem Beispiel die den String "ansprechpartner meiner neuen Variable $modul zuzuweisen".

    $content=str_replace("modul", "$modul", $content);
     $content=str_replace("]", ";]", $content);

    Danach will ich meine Variable $modul mit echo aufrufen aber aber bekomme kein Wert zurück gegeben.

    $modul = $content;

    oder sogar vielleicht sogar besser per referenz,

    $modul = &$content;

    gruss,
    wahsaga

    1. $modul = $content;

      oder sogar vielleicht sogar besser per referenz,

      $modul = &$content;

      Hallo wahsaga

      weil es sich hier eim eine WYSIWG Eingabe handelt.

      Und dort normal nur der Content bearbeitet wird.
      Da der Kunde bestimmt nicht im HTML Code arbeiten wird, will im Sichtbaren Bereich im Editor den Modulaufruf ein ermöglichen.

      Also mein Editor kann man umstellen auf HTML Ansicht oder normalen Ansicht. Und in der normalen Ansicht kann man überall den Modulaufruf positionieren ob z.B. in der Tabelle oder unter der Tabelle

      Und dann beim Abschicken wird der Inhalt aus dem Editor der Variable $content übergeben.

      Aber in $content ist mein Modulaufruf drin, den ich dann noch zum  Include Aufruf umparse.

      Verstehst Du jetzt was ich vorhabe?

      Gruß Susi

      1. hi,

        Verstehst Du jetzt was ich vorhabe?

        nein, eher noch weniger.

        und es würde mich auch wundern, wenn einer der weiteren mitleser jetzt klarer sieht, was du möchtest.

        gruss,
        wahsaga

        1. Ok,

          es ist auch irelevant was es macht ich möchte ja nur Wissen warum meine Variable im String von $content sich nicht aufrufen läßt?

          Das heißt als erstes ist es nur ein Wort welches modul heißt welches ich dann auf $modul umbenenne

          $content=str_replace("modul", "$modul", $content);
          $content=str_replace("]", ";]", $content);

          Und demnach müßte im $content folgendes Text stehen:

          ... HTML Code...

          [$modul="ansprechpartner";]

          ... HTML Code...

          Wieso kann ich die Variable aus dem String von $content mir nicht anzeigen lassen?

          Schliesslich müßte doch mit echo "modul: ".$modul;

          folgendes ausgeben werde:

          modul: anprechpartner

          aber es wird nichts angezeigt!?

          Und später soll dann eine abfrage kommen wenn $modul=="ansprechpartner" dann soll der den entsprechende include befehlt automatisch in den html code einfügen

          Gruß Susi

          1. Hey,

            Das sind ja komplizierte Gedankensprünge!

            Was du vorhast wird nicht funktionieren, denn scheinbar versuchst du
            hier folgendes:

            $content = '
                  ...
                  [modul="wirdnichtklappen"]
                  ...
               ';

            $content=str_replace("modul", "$modul", $content);
               $content=str_replace("]", ";]", $content);

            Damit hast du schlicht den Inhalt von $content geändert, in:

            $content = ' ... [$modul="wirdnichtklappen";] ... '

            Lass dir gesagt sein, daß es nichts bringt lauter Dollarzeichen in $content
            einzufügen, denn dadurch lassen sich keine Variablen in PHP erzeugen. Die
            Variable $modul wird hier nicht durch Zauberhand erstellt werden, niemals.

            Wenn du eine Variable $modul haben willst, dann mußt diese im PHP-Code
            erstellen, und nicht innerhalb einer String-Variable. Was dir weiterhelfen
            könnte (was du eigentlich machen willst hast du ja nicht gesagt), wäre
            vielleicht preg_match():

            preg_match('/[modul="(.+?)"/', $content, $uu);
               $modul = $uu[1];

            Und später soll dann eine abfrage kommen wenn $modul=="ansprechpartner" dann soll der den entsprechende include befehlt automatisch in den html code einfügen

            Noch ein Hinweis: '$modul=include("wirdnichtgehen");' wird dir hier
            ebenfalls nicht das gwünschte Ergebnis bringen.

            MsF,
            milky

            1. Hey,

              Das sind ja komplizierte Gedankensprünge!

              Was du vorhast wird nicht funktionieren, denn scheinbar versuchst du
              hier folgendes:

              $content = '
                    ...
                    [modul="wirdnichtklappen"]
                    ...
                 ';

              $content=str_replace("modul", "$modul", $content);
                 $content=str_replace("]", ";]", $content);

              Damit hast du schlicht den Inhalt von $content geändert, in:

              $content = ' ... [$modul="wirdnichtklappen";] ... '

              Lass dir gesagt sein, daß es nichts bringt lauter Dollarzeichen in $content
              einzufügen, denn dadurch lassen sich keine Variablen in PHP erzeugen. Die
              Variable $modul wird hier nicht durch Zauberhand erstellt werden, niemals.

              Wenn du eine Variable $modul haben willst, dann mußt diese im PHP-Code
              erstellen, und nicht innerhalb einer String-Variable. Was dir weiterhelfen
              könnte (was du eigentlich machen willst hast du ja nicht gesagt), wäre
              vielleicht preg_match():

              preg_match('/[modul="(.+?)"/', $content, $uu);
                 $modul = $uu[1];

              Und später soll dann eine abfrage kommen wenn $modul=="ansprechpartner" dann soll der den entsprechende include befehlt automatisch in den html code einfügen

              Noch ein Hinweis: '$modul=include("wirdnichtgehen");' wird dir hier

              Ich weiß das die Gedankenzüge realitätsfremd sind aber ich brauch es für meinen Script um den Benutzer die Eingabe so leicht zu möglich machen.

              Also hier handelt es sich wie gesagt auch nur um die Editoransicht.

              Wenn ich dann später $content aus der Datenbank auslese rufe ich das mit evel auf. Aber das ist in dort auch wieder was anders welches ich hier nicht einsetzen kann.

              1. Hey,

                Ich weiß das die Gedankenzüge realitätsfremd sind aber ich brauch es für meinen Script um den Benutzer die Eingabe so leicht zu möglich machen.

                Man sagt "DAS" Script.

                Wenn ich dann später $content aus der Datenbank auslese rufe ich das mit evel auf. Aber das ist in dort auch wieder was anders welches ich hier nicht einsetzen kann.

                Wenn du deinen HTML-String ($content) durch eval() jagst, wirst du ebenfalls
                keinen großen Erfolg haben; mit sehr hoher Sicherheit gibt das nämlich einen
                Parser-Fehler.

                MsF,
                milky

                1. Wenn du deinen HTML-String ($content) durch eval() jagst, wirst du ebenfalls
                  keinen großen Erfolg haben; mit sehr hoher Sicherheit gibt das nämlich einen
                  Parser-Fehler.

                  Nein es gibt keine Fehler! Das weiß ich ja wohl besser schließlich läuft das Script.

                  Aber das war hier auch nicht die Frage!