PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Variablen prob



Blakkeight
28.08.2006, 16:07
Tach,
ich habe folgendes Problem, ich will den Inhalt einer Variable in einer MySQL Tabelle Speichern (klappt wunderbar), der Inhalt der Variable ist HTML code mit weiteren Variablen drin.
Das sieht dann so aus:



$htm = "
<div class=\"n_title\">$news_title</div><br>
<div class=\"n_addy\">Geschrieben am $news_date von <a class=\"n_mail\" href=\"mailto:$news_mail\">$news_name</a></div><br>
<div class=\"n_body\">$news_post</div><br>
<hr noshade>
";


Nun zum Problem, es wuerd der Inhalt der Variablen gespeichert und nicht der Name. Ich will aber das z.b. Variable $news_title auch so gespeichert wuerd wie sie da steht und nicht der Inhalt.

Wie kann ich das machen?

Ich habe erst an str_replace() gedacht aber vlt wisst ihr ja was besseres?

gruß Jay

Dingsi
28.08.2006, 16:08
$htm = "
<div class=\"n_title\">\$news_title</div><br>
<div class=\"n_addy\">Geschrieben am \$news_date von <a class=\"n_mail\" href=\"mailto:\$news_mail\">\$news_name</a></div><br>
<div class=\"n_body\">\$news_post</div><br>
<hr noshade>
";

HTH. :)

Mir ist gerade aufgefallen, dass das noch viel einfacher geht. o_O


$htm = '
<div class="n_title">$news_title</div><br>
<div class="n_addy">Geschrieben am $news_date von <a class="n_mail" href="mailto:$news_mail">$news_name</a></div><br>
<div class="n_body">$news_post</div><br>
<hr noshade>
';

In ' wird nichts geparst und es muss nichts außer ' escaped werden. :)

Blakkeight
28.08.2006, 16:17
Cool gleich mal ausproben! =) Meld mich wenns klappt oder wenn nicht. ;)

e1:
Hat wunderbar geklappt, tausend dank. =)

mitaki
28.08.2006, 17:07
Hm, ich kanns nicht lassen.^^

Es ist zwar nur ein Auschschnitt der gesamten Seite, aber gibt es wirklich keine <hX> und <p> Alternativen zusammen mit Stylesheets anstatt der lästigen <div> und <br>s?

Btw: Ich dachte innerhalb von ' werden auch keine Variablen erkannt?
Egal, Wenn man einen PHP String mit " einschließt kann man auch auf ' als Attributunklammerung zurückgreifen ;)

Dingsi
28.08.2006, 17:22
Hm, ich kanns nicht lassen.^^

Es ist zwar nur ein Auschschnitt der gesamten Seite, aber gibt es wirklich keine <hX> und <p> Alternativen zusammen mit Stylesheets anstatt der lästigen <div> und <br>s?Das ist in der Tat irgendwie unsinnig. DIVs sind standardmäßig eigentlich Blöcke, also brauchen sie kein BR. Wenn man mehr Abstand will, macht man das mit CSS @Jay. ;)


Btw: Ich dachte innerhalb von ' werden auch keine Variablen erkannt?
Egal, Wenn man einen PHP String mit " einschließt kann man auch auf ' als Attributunklammerung zurückgreifen ;)Es geht doch gerade darum, dass die Variablen nicht erkannt werden sollen. :eek:

mitaki
28.08.2006, 17:28
Es geht doch gerade darum, dass die Variablen nicht erkannt werden sollen. :eek:
Ja, richtig^^


ich habe folgendes Problem, ich will den Inhalt einer Variable in einer MySQL Tabelle Speichern (klappt wunderbar), der Inhalt der Variable ist HTML code mit weiteren Variablen drin.
Hm, grundsätzlich bin ich ja der Meinung, den HTML Nebenbestand nicht mitzuspeichern, aber wenn du die Variablen als Namen mit reinspeicherst hat das wohl einen anderen Grund.

Blakkeight
28.08.2006, 19:20
LOL den Code da oben habe ich noch nicht getestet. =)
War bloß ein bsp. aber ihr habt recht eigendlich koennen die <br>s weg.

Das mit den Variablen hat schon seinen Grund denn so ein Code wie der oben dient mir als eine art Template was man dann im Browser auslesen und veraendern kann.

ice cold killa
30.08.2006, 10:33
Öhmm.. Ich störe nur Ungern aber....

Wenn du es in ' so klammern machst, dann dürften die Variablen nicht angezeit werden..

Zumindes hab ichs so in erinnerung xD

Such dir am besten ein template system, das is einfach das besten...

Oder es giebt noch ne möglichkeit die genau für sowas ist aber ich hab sie nimmer so ganz in erinnerungen, wenns dann einer vervollständigen könnt:



$html_formatierter_text = <<<END
<div class="n_title">$news_title</div><br>
<div class="n_addy">Geschrieben am $news_date von <a class="n_mail" href="mailto:$news_mail">$news_name</a></div><br>
<div class="n_body">$news_post</div><br>
<hr noshade>
END;


Das sollte sogar Stimmen, denn laut php.net:



echo <<<END
Hier wird die "here document"-Syntax verwendet, um mehrere
Zeilen mit $variablen Interpolation auszugeben. Beachten Sie,
dass das sich das "here document"-Endzeichen in einer Zeile
mit nur einem Strichpunkt aber ohne Leerzeichen o.ä. stehen muss!
END;
// Und was mit echo geht geht auch mit Variablen xD

Dingsi
30.08.2006, 12:48
@ice cold killa:
Auch du scheinst nicht richtig gelesen zu haben. :p Die Variablen sollen eben NICHT ausgewertet werden. Er will eine Zeichenkette in der '$foobar' steht und nicht der Inhalt von $foobar. ;)

ice cold killa
30.08.2006, 19:35
achso =(

mfg