$str = preg_replace('/[^\w\s]/u', ' ', $str)
Решение для строк в юникоде - это как раз буква u. Единственная проблема может быть в том, что если установлена не правильная локаль, то в множество \w может не входить кириллица и входить что-нибудь не то. Поэтому можно поставить локаль ru_RU.utf-8, либо указать кириллицу диапозоном: [ЁёА-Яа-пр-я]. Если указывать кириллицу диапозоном, то либо сам файл скрипта должен набираться в utf8, либо надо указывать коды символов через \xHH
|