RobDust: preg_replace etwas entfernen mit Außnahmen

Beitrag lesen

Ich nehm mal ein leichteres Beispiel. Vergesst mal die Tabelle.

also der Inhalt der $Variable ist (Unser Warenwirtschaftsystem gibt das so vor, und ich kann den Code halt nachher nur modifizieren. bevor er wo anders eingelesen wird.

<p class=defalt>Test Test Test</p>

nun möchte ich alle Leerzeichen mit &nbsp; füllen.
Würde ich folgendes ansetzen:
$Variable = str_replace(" ","&nbsp;",$Variable)

Dann krieg ich folgenden Code ausgegben:
<p&nbsp;class=defalt>Test&nbsp;&nbsp;Test&nbsp;&nbsp;Test</p>

und ebend das &nbsp; zwischen p und class möchte ich gerne als Ausßnahme definieren.... Vielleicht ist str_replace auch nicht der richtige Befehl.
Weil es keine Ausnahmne kann?!