Исключительно для корректно написанного текста на русском языке можно так.
Заменить все кавычки, перед которыми стоит пробел или начало строки на открывающие "лапки":
$text = preg_replace('/(?<=^|\s)["\'`„“’]/u', '«', $text);
Заменить все оставшиеся кавычки на закрывающие "лапки":
$text = preg_replace('/["\'`„“’]/u', '»', $text);