$RusA = "[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]";
$RusV = "[аеёиоуыэюя]";
$RusN = "[бвгджзклмнпрстфхцчшщ]";
$RusX = "[йъь]";
$text= preg_replace ("/($RusX)($RusA$RusA)/","\\1­\\2",$text);
$text= preg_replace ("/($RusV)($RusV$RusA)/","\\1­\\2",$text);
$text= preg_replace ("/($RusV$RusN)($RusN$RusV)/","\\1­\\2",$text);
$text= preg_replace ("/($RusN$RusV)($RusN$RusV)/","\\1­\\2",$text);
$text= preg_replace ("/($RusV$RusN)($RusN$RusN$RusV)/","\\1­\\2",$text);
$text= preg_replace ("/($RusV$RusN$RusN)($RusN$RusN$RusV)/","\\1­\\2",$text);