Anführungszeichen escapen

hury

Erfahrenes Mitglied
Hi,

ich versuche per Zufall ein Bild auszugeben, es klappt nicht.

PHP:
<?php
 $zahl = rand(1,2);;

if ($zahl == 1) { echo "<img src=\"index1.jpg\" width=\"800\" height=\"363\">"; }
if ($zahl  == 2) { echo "<img src=\"index2.jpg\" width=\"811\" height=\"345\">"; }

?>

Was mache ich falsch? Die Anfüghrungszeichen habe ich escaped, doch es kommt nix...

Grüße
Alex
 
Ups,

Semikolon korrigiert. Wenn ich versuche $zahl auszugeben kommt nichts. Keine Ausgabe?!

Grüße
Alex
 
schonmal so probiert

PHP:
<?php
 $zahl = rand(1,2);

if ($zahl == 1) { echo '<img src=\"index1.jpg\" width=\"800\" height=\"363\">'; }
if ($zahl  == 2) { echo '<img src=\"index2.jpg\" width=\"811\" height=\"345\">'; }

?>

Du hast hinter dem rand(1,2); ein weiteres (";") gesetzt.
Außerdem sollte man wenn man html in einem echo ausgibt das echo mit einem einfachen anführungsstrich am anfang sowie am ende schreiben, da es ansonten zu komplikationen mit den html tags kommen kann

Beispiel: echo"<table border="0" cellspacing="0" cellspadding="0">";
Das wird echt probleme geben, da im eigentlichen echo befehl immer wieder doppelte Anführungszeichen kommen..


Mfg. Oliver
 
Hi,

Außerdem sollte man wenn man html in einem echo ausgibt das echo mit einem einfachen anführungsstrich am anfang sowie am ende schreiben, da es ansonten zu komplikationen mit den html tags kommen kann

Deswegen escaped er die Anführungszeichen innerhalb des Strings ja. Das ist schon korrekt so. Die doppelten innerhalb von einfachen zu escapen, ist allerdings nicht richtig.

Wenn ich versuche $zahl auszugeben kommt nichts. Keine Ausgabe?!

Das ist allerdings seltsam. Schalte mal display_errors an, error_reporting auf E_ALL und mach ein var_dump auf $zahl (kein simples echo).

LG
 
Hi,

der Fehler lag wo anders...ich habe vergessen die index.html in .php umzubenennen...Sagt bitte nix ;)

Grüße
Alex
 
hmm irgentwie kommt mir sowas bekannt vor :-)
Jaja, ich hab damals auch den fehler gemacht eine index.htm nicht in .php umzuschreiben, macht man halt wenn man schnell was am design ändern will und sich das ganze dann im Browser anschaut ;)
Jetzt mach ich das mit einem template parser und muss nun nichts mehr umbennen ;-]

Mfg. Oliver
 
Bevor sich hier Fehler einschleichen, nochwas zu den Hochkommas bzw. Anführungszeichen:

Wenn ein String in Hochkommas steht, werden darin enthaltene Variablen NICHT ersetzt!
PHP:
$test = "foo";
echo 'Hier haben wir ein niedliches $test'; // -> Hier haben wir ein niedliches $test
echo "Hier haben wir ein niedliches $test"; // -> Hier haben wir ein niedliches foo

Innerhalb eines in Hochkommas gequoteten Strings sind Anführungszeichen nicht zu escapen! Genauso andersrum!
siehe Beispiele:
PHP:
echo '<a href="foobar.php?richtig=so">';
PHP:
echo "<a href='foobar.php?richtig=so'>";
PHP:
echo '<a href=\'foobar.php?richtig=so\'>';
PHP:
echo "<a href=\"foobar.php?richtig=so\">";

MfG
 
Zurück