allora prova con una espressione regolare...
$str = ereg_replace("[^[:space:]a-zA-Z0-9*_.-]", "", $str);
così vengono "conservati" solo spazi vuoti, lettere dalla a alla z (minuscole), lettere dalla A alla Z (maiuscole), numeri da 0 a 9 e i caratteri * _ . e -

Codice PHP:
function special_char($array) {
      foreach (
$array as $key => $valore){
            
$valore ereg_replace("[^[:space:]a-zA-Z0-9*_.-]"""$valore);
            
$valori[$key] = $valore;
      }
      return 
$valori;