Если вы хотите заменить серию нежелательных символов одной чертой, вы можете использовать что-то вроде этого:
preg_replace('/\W+/', '-', $search);
Чтобы удалить окружающие кавычки, а затем заменить любое другое барахло тире, попробуйте следующее:
$no_quotes = preg_replace('/^"|"$/', '', $search);
$no_junk = preg_replace('/\W+/', '-', $no_quotes);