Where are you getting this data from? Are htmlspecialchars() or htmlentities() being run on the data?
I don't see why the str_replace wouldn't work. I usually use double quotes, but I don't think that's a problem, is it?
$string = str_replace("&","&",$string);
$string = str_replace(""","\"",$string);
The first one should replace the & followed by amp followed by semicolon.
Second one should replace & followed by quot followed by semicolon.
I'm not sure how this will all look when the forum decodes it.
---John Holmes...