echo $begrüßung;
Die Dateien sind allerding snoch in DOS erstellt und beinhalten daher viel "datenmüll" wie z.B. "ÿÿÿÿÿÿÿÿÿÿÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ" und zeichen die sich hier nicht darstelln lassen.
Finde heraus, in welcher Kodierung (nicht Format!) die Texte sind. Schau dir den Text in einem Hexeditor an und suche zu den "Müll"-Zeichen die Bytewerte und errate, welches Zeichen sie darstellen sollen. Vergleiche dann die Bytewerte mit Kodierungen wie CP437 und CP850. Das sind die wahrscheinlichsten, wenn die Texte westeuropäischen Ursprungs sind.
Gibts in Php einen befehl, der ähnlich wie mb_convert_string_encoding diese zeichen ignoriert und streicht?
Wenn du von ignorieren sprichst, dann könnte es auch sein, dass du keine Textdatei sondern eine strukturierte Datei vorliegen hast und zufällige Bytewerte an "ungenutzten Stellen" stehen. In dem Fall solltest du nicht mit Textdatei-Methoden hantieren sondern die Daten der Struktur entnehmen. Umkodieren wirst du sie dann möglicherweise immer noch müssen.
Beispielsweise können Stringwerte mit vorangehendem Längenbyte gespeichert sein (Pascal-Stil) oder mit einem bestimmten Zeichen aufhören (00-Byte - C-Stil).
Über Stringverarbeitung (str_replace/preg_replace oder ähnliches) funktioniert das nicht.
Das funktioniert schon, nur müssen die Bytewerte der Zeichen im Quelltext mit den Bytewerten der Zeichen in der Datei übereinstimmen.
echo "$verabschiedung $name";