with while w3schools w3school source simple samples quiz examples example code php money-format

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);