echo $begrüßung;
Quick and dirty fällt mir ein, nicht an ; sondern an ";\n" (oder ";\r\n"), also ein ; mit folgendem Zeilenende, aufzuspalten, wenn du sicher sein kannst, dass diese Kombination nicht in den Daten vorkommt.
Sonst würde ich einen Parser bauen, der bei Auftreten von " oder ' ein Flag setzt und dann das ; ignoriert, wobei auch noch " und ' beachtet werden müssen.
echo "$verabschiedung $name";
P.S. Hast du auch die max_execution_time berücksichtigt?