Thomas Luethi: Stringaddition

Beitrag lesen

Hallo,

$TempContent = "<img src='".$imgPath."' Width='".$imgWidth."' Height='".$imgHeight."' Title='".$imgTitle."' Alt='".$imgAlt."'>";

Einfache Anführungszeichen werden manchmal ignoriert,
habe schlechte Erfahrrung damit.

Einfache Anfuehrungszeichen waren schon in HTML 2.0 ausdruecklich
erlaubt, um Attributswerte "einzupacken":

RFC 1866 - Hypertext Markup Language - 2.0 (November 1995):
http://ftp.ics.uci.edu/pub/ietf/html/rfc1866.txt
   "The value of the attribute may be either:
       * A string literal, delimited by single quotes or double
       quotes and not containing any occurrences of the delimiting
       character.
         [...]"

Etwa das gleiche steht in der HTML 4.01 Specification:
http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2

Ich halte es deshalb bis zum Beweis des Gegenteils fuer ein
Geruecht und fuer hartnaeckigen Aberglauben, dass einfache
Anfuehrungszeichen Probleme bereiten sollen.

Und ich denke, dass ein Browser, der nicht mal HTML 2.0 kann,
auf dem heutigen Internet und Web nicht mehr einsatzfaehig ist.

@Nicole: Kannst Du es bitte etwas genauer erlaeutern?
Mit einem konkreten (validen) Beispiel bzw. mit einem konkreten Browser,
der das offensichtlich nicht kann? Ich waere Dir sehr dankbar.

---

Ich wuerde es wie folgt schreiben:

$TempContent = "<img src='$imgPath' width='$imgWidth' height='$imgHeight' title='$imgTitle' alt='$imgAlt'>";

Das ist IMHO am uebersichtlichsten (abgesehen von der Heredoc-Schreibweise).
Es darf nur kein (hier: einfaches) Anfuehrungszeichen in einem der Werte (z.B. Title, Alt)
vorkommen, aber darauf muss man sowieso achten, egal, mit welcher PHP-Schreibweise
man den String zusammenbaut und egal, welche Anfuehrungezeichen man verwendet.
Zwischen einfachen Anfuehrungszeichen darf kein uncodiertes einfaches Anf.z. vorkommen,
zwischen doppelten kein uncodiertes doppeltes Anf.z. - eigentlich logisch, und es steht
auch ausdruecklich in den HTML Specifications.
Andere Nachteile sehe ich nicht.

Folgendes ist valides HTML 4 und funktioniert in allen mir bekannten Browsern problemlos,
inklusive korrekter Tooltip-Anzeige:
<img src="elvis.jpg" alt="Elvis "The King" Presley" title="Elvis "The King" Presley">
<img src='rocknroll.gif' alt='Rock&#39;n&#39;Roll' title='Rock&#39;n&#39;Roll'>

"Es ist Geschmackssache", bzw.  wie Lulu schrieb: "Es kommt darauf an"
 ;-)

Gruesse,

Thomas

P.S. @lulu: MO schreibt offenbar nicht XHTML - also darf er/sie die Attributs-Namen
gross oder klein schreiben, nach Lust und Laune.
Natuerlich ist es im Hinblick auf einen spaeteren Wechsel zu XHTML empfehlenswert,
sich auch schon in HTML an die Regeln zu halten, die mit HTML vereinbar sind,
z.B. konsequente Kleinschreibung von Element- und Attributs-Namen, aber
vorgeschrieben ist das nirgends.
Ich weiss, du hast "sollten" geschrieben, nicht "muessen"...