echo $begrüßung;
ist zwar schon wieder eine Weile her aber mich würde ehrlich interessieren was an der foreach Schleife falsch sein soll?
Nichts. Das foreach($contents[1] ... sah nur auf den ersten Blick seltsam aus. Da $contents aber so aussieht,
Array
(
[0] => Array
(
[0] =>
[1] =>
)
[1] => Array
(
[0] => F6
[1] => DF
)
)
ist das völlig in Ordnung gewesen. Nur die Gierigkeit des zweiten preg_replace() war das Problem.
Das Problem lässt sich aber mit preg_replace_callback() eleganter lösen. Man braucht nur eine Funktion, die von der Fundstelle den Hex-Wert in das Zeichen umrechnet.
echo preg_replace_callback('#<(.*)>#U', 'hex2char', $string);
function hex2char($match) {
return chr(hexdec($match[1]));
}
$match bekommt für die erste Fundstelle dieses Array
array(2) {
[0]=>
string(4) "<F6>"
[1]=>
string(2) "F6"
}
übergeben, also die komplette Fundstelle im Element 0 und aufgrund der Gruppierung im Pattern den Hexwert im Element 1. Dieser muss umgerechnet und zurückgegeben werden.
echo "$verabschiedung $name";