while - PHP money_format(); £ no firma GBP
w3school php quiz (6)
¿Has probado esto?
setlocale(LC_MONETARY, ''en_GB'');
utf8_encode(money_format(''%n'', 1000));
¿No puedo averiguar cómo obtener el símbolo de moneda?
En este momento estoy usando
setlocale(LC_MONETARY, ''en_GB'');
money_format(''%i'', 1000);
Que me dan la salida
GBP1,000
Pero yo quiero
£1,000
He revisado el manual de PHP pero no es tan útil.
¿Algunas ideas?
Aquí hay una solución para aquellos de ustedes, como yo, que piensan que el formato de dinero de PHP es horrible.
$formatted = ''£'' . number_format( (float) $amount, 2, ''.'', '','' );
Esto funcionó para mí:
setlocale(LC_MONETARY, ''en_GB.UTF-8'');
money_format(''%n'', 1000);
Es similar a la solución seleccionada, sin embargo, no funcionó para mí. ¿Por qué? La razón es que la configuración regional en_GB
no se definió en mi sistema, solo en_GB.UTF-8
:
$ locale -a | grep "en_GB"
en_GB.utf8
Además, al usar el conjunto de códigos UTF-8 directamente, se puede guardar la llamada adicional a utf8_encode
.
Ninguna de las soluciones anteriores funcionó para mí. Estaban imprimiendo una '' A
'' antes del signo £
. En lugar de basarme en las solutiones de Aidan y Diegos, tengo lo siguiente:
setlocale(LC_MONETARY, ''en_GB.UTF-8'');
echo (money_format(''%n'', $bagel->Price));
Una solución fácil podría ser reemplazar GBP con & pound; (sin los espacios) después de money_format.
Usar la función str_replace () es una opción.
£ - libra esterlina - £
(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);