echo $begrüßung;
Ich denke, es läuft auf das von Cheatah angesprochene Problem der Maskierung von Stringbegrenzungszeichen, so sie innerhalb eines Strings vorkommen, hinaus.
Was ist das und wie macht man das?
Beispielstring: Das ist eine Zeichenkette, die "Anführungszeichen" enthält.
Möchte man das als String notieren, der in "" eingefasst ist, bekommt der Parser ein Problem, wenn er auf das erste im Beispielstring enthaltene " stößt. Für ihn ist der String dort zu Ende. Deshalb muss man dieses " entschärfen. Man nennt das Maskieren und macht dies mit einem \ davor:
$Beispielstring = "Das ist eine Zeichenkette, die maskierte "Anführungszeichen" enthält.";
Das was ich hier für PHP vorgeführt habe, musst du auch für den Javascript-Code machen.
Es müssen übrigens auch noch andere Zeichen entschärft werden: Steuerzeichen und besondere Notationen.
Wenn du nicht Zeichen für Zeichen durchgehen willst, kannst du dafür die Funktion addcslashes() (man beachte das c im Namen) verwenden. Als zweiter Parameter wäre ""\n\f\b\r\t" angebracht.
Eine weitere Möglichkeit wäre noch, den serialisierten String mit base64_encode() zu behandeln und in vor dem Unserialisieren mit base64_decode() wieder in die serialisierte Form zurückbringen.
Ich denke, ich würde bei so einer Aufgabenstellung zu dieser Methode greifen.
#schäm#
echo str_replace('schäm', 'wissenwill', $zitat);
echo "$verabschiedung $name";