[Решено] Preg_Replace_Callback и русские символы

Статус
В этой теме нельзя размещать новые ответы.

Gameer

Постоялец
Регистрация
25 Апр 2014
Сообщения
187
Реакции
118
Здравствуйте все, есть код :

PHP:
$str ="#тестовая новость";
$str = preg_replace_callback('/(\#\w+)|\#[а-яёіїъ]+/mis',
     function($matches){
       $url = str_replace('#','',$matches[0]);
       $url = urlencode($url);return'<a href="'.$url.'">'.$matches[0].'</a>';
     },
$str);
Суть кода в том что бы найти все вхождения слов с символом # и заменить на ссылку, для этого использую preg_replace_callback и анонимную функцию. Если символы латинские все хорошо, если русские то все плохо. Получаем такую картину

ZNacvKK.png
Отдает вовсе японские символы, в первые с таким сталкиваюсь. Проверял как на локале так и не сервере, ответ один и тот же.

Что не так в коде-то ?
 
У тебя не распознает русские символы. Необходимо поставить модификатор "u", который установит обработки строки в utf8.
Код:
'/(\#\w+])\s|\#[а-яёіїъ]+/umis'
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху