[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемы с mb_str_replace
Владимир55
Если я верно понял, функция str_replace не справляется с кодировкой УТФ-8, если версия РНР 5.2 и ниже.

В сети для этой цели активно рекомендуется функция
if (!function_exists("mb_str_replace")) 
{
function mb_str_replace($needle, $replace_text, $haystack) {
return implode($replace_text, mb_split($needle, $haystack));
}
}


$str = 'foo string';
mb_str_replace('foo', 'bar', $str);


Это решает проблемы, но я обнаружил один нюанс - код не работает, если замена касается круглой скобки.

Это фатальная проблема, решения у неё нет?
twin
if (!function_exists("mb_str_replace")) 
{
function mb_str_replace($needle, $replace_text, $haystack) {
return implode($replace_text, mb_split(preg_quote($needle), $haystack));
}
}


$str = '( string';
echo mb_str_replace('(', 'bar', $str);


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
Цитата (Владимир55 @ 18.04.2016 - 19:22)
версия РНР 5.2 и ниже

Але! На дворе PHP7. Это как поддерживать IE6...
Владимир55
А не всё так просто!

Есть ситуации, когда ЦМС, аттестованные на РНР5 и РНР7, конфликтуют с некоторыми внешними скриптами информационных систем, забивая почту уведомлениями и предупреждениями.

Со временем это исправится, но жить-то надо! И приходится понижать версии.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.