PHP money_format(); £ знак не GBP - программирование
Подтвердить что ты не робот

PHP money_format(); £ знак не GBP

Я не могу понять, как получить символ валюты?

В настоящий момент я использую

setlocale(LC_MONETARY, 'en_GB');
money_format('%i', 1000);

Что дает мне вывод

GBP1,000

Но я хочу

£1,000

Я проверил руководство по PHP, но это не так полезно.

Любые идеи?

4b9b3361

Ответ 1

Вы пробовали это?

setlocale(LC_MONETARY, 'en_GB');
utf8_encode(money_format('%n', 1000));

Ответ 2

Это сработало для меня:

setlocale(LC_MONETARY, 'en_GB.UTF-8');
money_format('%n', 1000);

Это похоже на выбранное решение, однако для меня это не сработало. Зачем? Причина в том, что локаль en_GB не была определена в моей системе, только en_GB.UTF-8:

$ locale -a | grep "en_GB"
en_GB.utf8

Кроме того, с помощью кода UTF-8 напрямую можно сохранить дополнительный вызов utf8_encode.

Ответ 3

Здесь решение для тех из вас, как я, которые считают PHP money_format ужасным.

return '£' . number_format( (float) $amount, 2, '.', ',' );

Ответ 4

Ни одно из вышеописанных разрешений не работало для меня. Они печатали "A" перед знаком £. Вместо этого, основываясь на решениях Aidan и Diegos, у меня есть следующее:

setlocale(LC_MONETARY, 'en_GB.UTF-8');
echo (money_format('%n', $bagel->Price)); 

Ответ 5

Легкое решение может быть заменено на GBP с фунтом; (без пробелов) после money_format.

Ответ 6

Использовать функцию str_replace() является опция.

£ - Британский фунт - £ (163)

// Search for the GBP in your string (subject) then replace for the symbol code
$search = "GBP";
$replace = "£";
$subject = "GBP";
echo str_replace($search, $replace, $subject);