THEMA: PHP: Anführungsstriche (") in Strings

PHP: Anführungsstriche (") in Strings 14 Jahre 9 Monate her #5227

  • holzofen1
  • holzofen1s Avatar
  • Offline
  • menkiSys-Kunde
  • Beiträge: 15
  • Karma: 0
Hallo :-)

Ich melde mich einmal mit einer Kleinigkeit, und zwar geht es darum, Anführungsstriche in echo-Strings zu setzen, die zum String gehören und per echo mit ausgegeben werden sollen.

Dies wird zB benötigt, wenn man HTML-tags per echo aufrufen will. Möglich wäre dafür folgende Variante:

(aus HTML heraus auf PHP zugreifen) :
<img src="<?php echo $bild; ?>">

Das ist wenn die Adresse des auszugebenden Bildes bereits in der Variable $bild gespeichert ist und man schon ne halbe Ewigkeit lang den PHP-Modus verlassen hat. Möglich ist aber auch folgendes :
<?php 
$sql = "SELECT * FROM bilder"; 
while ($row = mysql_fetch_object($sql)) {
$bild = $row->bild; 
$alt = $row->alt; 
?>

Jetzt zum Problem. Wenn wir bei dieser Möglichkeit den PHP-Modus NICHT verlassen möchten, sondern den <img src> - Tag per echo ausgeben wollen (was ja möglich ist), stellt sich folgendes Problem da. img src möchte die Bildadresse in Anführungsstrichen haben.

Wenn wir folgendes machen:
<?php 
$sql = "SELECT * FROM bilder"; 
while ($row = mysql_fetch_object($sql)) {
$bild = $row->bild; 
$alt = $row->alt; 
echo "<img src="" . $row->bild . ""alt="" . $alt . "">"; 
?>
oder so, wird dem echo Befehl nur folgendes übergeben :
<?php
echo "<img src=";
?>

Da es aber nach den Anführungsstrichen noch weiter geht, also die Anführungsstriche zum auszugebenden String eigentlich gehören, bricht der PHP-Parser bei diesem Beispiel die Interpretation mit einer Fehlermeldung ab.

Woran liegt das? Der HTML-Tag für die Bildausgabe ist doch richtig geschrieben ?

Das schon, AAABER wir müssen dem PHP-Parser irgendwie beibringen können, dass der echo-Befehl nach dem img src=" nicht zu Ende ist, sondern dass dieses Ausführungszeichen zum echo Funktionsaufruf DAZU gehört und mit auszugeben ist.

Wie machen wir das? Dafür gibt es das sogenannte "ESCAPE-Zeichen", sieht so aus:
\\

Wir erreichen es mit gleichzeitigem Drücken der Taste Alt Gr (befindet sich rechts neben der Leertaste auf Eurer Tastatur) und dem Fragezeichen bzw ß.

Ein einwandfreier Aufruf des Bildtags innerhalb des PHP-Modus sieht also folgendermassen aus:
<?php
echo "<img src=\\"http://www.beispiel.de/bild.jpg\\">"; 
?>

Dadurch "weiss" der Interpreter, dass die Ausführungszeichen per echo mit ausgegeben werden sollen, und die Ausführungszeichen eben halt NICHT das Ende des echo-Befehls sind. Somit gibts auch keinen Fehler mehr.

Viel Spass beim Probieren.

Die Meisten werdens wissen, aber ich fands einfach mal wichtig, das Thema anzuschneiden.


BrokenSoul1979
Letzte Änderung: 14 Jahre 9 Monate her von holzofen1.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: PHP: Anführungsstriche (") in Strings 14 Jahre 9 Monate her #5239

  • Eddie
  • Eddies Avatar
  • Offline
  • menkiSys-Kunde
  • Beiträge: 69
  • Karma: 0
Super, das Problem hatte ich auch vor kurzen, hab es dann aber per Anschauungsdatei gelöst ^^

Sonst geht es auch per " ' "

Maggo ;)
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: grogster
Ladezeit der Seite: 0.089 Sekunden