До сега хиляди пъти съм заменял текст със друг , но този път ми възникна един проблем представен като пример:
$str=“Мартин Иванов Петров | мартин иванов петров“;
$str=$str_replace(„/Мартин/i“,“MARTIN“,$str);
echo $str;
В този случай би трябвало да ми изведе
„MARTIN Иванов Петров | MARTIN иванов петров“
Но ми извежда
„Мартин Иванов Петров | MARTIN иванов петров“;
Има проблем с локала.
Такъв проблем имаше и някакъв грък писал запитване на php devs, но краен отговор не получи. Както и да е.
Решението е ( за различните енкодинги друг локал се сетва):
<?php
setlocale(LC_ALL, ‘bg_BG’);
?>
PS: Същия проблем имаше един приятел когато искаше да направи cp1251 текст с големи букви и не ставаше.
Ето го решението:
echo strtoupper(„Преди setlocale-<i>Мартин Петров</i><br>“);
setlocale(LC_ALL,“bg_BG“);
echo strtoupper(„Преди setlocale-<b>Мартин Петров</b><br>“);
Резултат:
Преди SETLOCALE-Мартин Петров
ПРЕДИ SETLOCALE-МАРТИН ПЕТРОВ
Logged in as {{omniform_current_user_display_name}}. Edit your profile. Log out? Required fields are marked *
Your email address will not be published. Required fields are marked *
Comments are closed.
You must be logged in to post a comment.