echo $begrüßung;
var_dump($von);
// =>
// array(1) {
// [0]=>
// string(29) "20050101"
// }
Du schwindelst! Oder auch nicht, lies weiter... :-)
string(29) bedeutet ein String mit 29 Zeichen. Dein String hat aber dann 8 Zeichen. Wie das?
Nun, da scheinen mir Null-Bytes im String zu sein. Schau dir mal den Quelltext der Browserausgabe an. Dort sollten zwischen dem " und der 2 ein paar "Leerzeichen" zu sehen sein.
Und dann lass dir mal die Bytes von $von[0] als Hex-Werte ausgeben:
echo chunk_split(bin2hex($von[0]), 2, ' ');
Wenn meine Vermutung stimmte, dann reicht ein trim() um die Null-Bytes zu entfernen.
echo "$verabschiedung $name";