Добрый день!PHP многобайтовый безопасный preg_replace Vs. str_replace
У меня возникли проблемы с preg_replace
и utf-8. Следующий код-фрагмент:
$v = "line1\nline2\r\nмы хотели бы поблагодарить";
print $v;
print preg_replace("#\R#", "", $v);
print preg_replace("\n", "", $v);
возвращает следующий результат:
line1
line2
мы хотели бы поблагодарить
line1line2мы �отели бы поблагодарить
line1line2
мы хотели бы поблагодарить Вас
По какой-то причине х неразборчивое, когда \R
используется, но это не влияет, когда \n
используется. Поскольку \R
является специфичным для PHP, я полагаю, это порождает проблему. Кто-нибудь знает, как я мог бы использовать \R
(что не принято str_replace
) в preg_replace
? Я боюсь, что эта проблема может произойти во многих других случаях, причем не только с капиталом.
Вы пробовали функцию как utf8decode или кодировали? – Fky