echo $begrüßung;
Wenn $von hier
ereg("<VonDatum>[0-9]+</VonDatum>", $value, $von);
// => $von = "20050101"
ein String ist
echo gettype($von);
// => string
und du hier $von als Array verwendest,
echo (int) $von[0];
// => 0
dann ist entweder dein Quelltextzitat falsch oder der Quelltext selber.
Bitte lass dir mit var_dump($von) den wirklichen Inhalt von $von ausgeben (vorher ein <pre> ist empfehlenswert). Und dann setzt bitte das error_reporting aus E_ALL.
Ich möchte mit dem Wert 20050101 "weiterrechnen".
Das erscheint mir nicht sehr sinnvoll. Willst du nicht lieber den String zerlegen und mittels mktime() einen Timestamp erzeugen?
echo "$verabschiedung $name";