Exceto string e números substituem todos os caracteres especiais no PHP

function clean($string) {
   $string = str_replace(' ', '-', $string); // Replaces all spaces with -.
   return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special characters
}
@CodeGrepperManu