Cheatah: Verständnissproblem bei date()

Beitrag lesen

Hi,

echo date("\H\e\u\t\e \i\s\t\ D, \d\e\r d. M Y");

unabhängig davon, ob dies in der date()-Funktion oder einem einfachen String passiert, führst Du hier kein Escaping durch, sondern verwendest nur Sonderzeichen. Beispielsweise "\H", welches aufgrund des Fehlens einer Sonderbedeutung als "H" interpretiert wird. "\t" ist ein Tabulator, "\n" wäre beispielsweise ein Umbruch.

Willst Du hingegen die Zeichenkette
\H\e\u\t\e \i\s\t\ D, \d\e\r d. M Y
in der date()-Funktion verwenden, bringst Du sie in einen String-Kontext (hier also: Doublequotes). In diesem musst Du all jene Zeichen, die im String-Kontext eine Sonderbedeutung haben, kontextspezifisch mit Backslash maskieren - also insbesondere den Backslash.

Warum muss ich die 3 Buchstaben doppelt maskieren?

Die Frage müsste lauten, warum Du die anderen *nicht* maskieren musst. Allerdings ist die Antwort eher uninteressant, weil Du Deinen für date() bestimmten Wert in einen String-Kontext bringst, und *immer* dann, wenn Du einen Wert in einen Kontext bringst, *musst* Du ihn kontextspezifisch maskieren. Wenn hierbei Ausnahmen möglich sind, dann ist es (außer bei defekten Konzepten) niemals nötig, sie zu kennen - ignoriere sie einfach und maskiere korrekt.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes