$_POST['text'] = preg_replace("/ \"/", " «", $_POST['text']); //делаем правильные кавычки
$_POST['text'] = preg_replace("/\" /", "» ", $_POST['text']); //делаем правильные кавычки
Как только не пробовал - либо совсем удаляет текст в кавычках, либо не меняет совсем, либо только правую заменяет.