str_replace
Susi
- php
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
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
$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
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
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
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
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.
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
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!