Variabeln aus funktion ausgeben

hi ich habe ein problem, und zwar will ich eine funktion, die aus drei variabeln ä,ö,ü,Ä,Ö,Ü und ß durch die ü und so ersetzt. die funktion hierfür sieht so aus:

function ersetzen($inhalt,$titel,$beschreibung)
{
	$a=array(
	"ä"=>"ä",
	"Ä"=>"Ä",
	"ö"=>"ö",
	"Ö"=>"Ö",
	"ü"=>"ü",
	"Ü"=>"Ü",
	"ß"=>"ß");
	foreach($a as $key=>$value) $inhalt=str_replace($key,$value,$inhalt);
	foreach($a as $key=>$value) $titel=str_replace($key,$value,$titel);
	foreach($a as $key=>$value) $beschreibung=str_replace($key,$value,$beschreibung);
}

und nun will ich mit echo (oder auch mit anderen sachen, z.B. in mysql datenbank speichern) die variabeln $inhalt, §titel und §beschreibung ausgeben. dies funktioniert nicht (davor habe ich die funktion mit ersetzen(öäüöäüÖÄÜÖÄÜßß,ööäüöü,äöüöäöüö); aufgerufen)
vielen dank für die antworten im vorraus, crazyanimalium

Wenn du Variablen in einer Funktion verändern willst, musst du sie by-reference übergeben:

dann erscheint bei mir:
Fatal error: Cannot pass parameter 1 by reference in…on line4

Warum nutzt du nicht htmlentities() ?
Erfüllt genau deinen zweck:

$str = "Ein 'Anführungszeichen' ist <b>fett</b>"; echo htmlentities($str); // Gibt aus: Ein 'Anf&uuml;hrungszeichen' ist &lt;b&gt;fett&lt;/b&gt;

weil dabei auch <> , also html code, mit weggemacht wird. ich brauch aber html. nur halt die sonderzeichen nicht.

[quote=“crazyanimalium”]dann erscheint bei mir:
Fatal error: Cannot pass parameter 1 by reference in…on line4[/quote]
Du musst die Funktion mit Variablen aufrufen, kein statischer Inhalt (Strings etc.)

ah, danke
ich werds mir für immer und ewig merken

Das ist in den allermeisten Fällen Unfug.
Warum nutzt du nicht einfach eine Zeichenkodierung, die diese Zeichen ohne irgendeine Sondernotation abbilden kann?