Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/10/2013, 10:13
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: dar formato a dólares americanos

Los espacios no se convierten en caracteres raros... Tiene ese carácter raro además de los espacios.

Como tienes la función el resultado de 8000 es:

2Â 892.264

debes quitar ese  y espacios para que te funcione number_format.

La prueba:

Código PHP:
Ver original
  1. function  currency_paypal($from_Currency,$to_Currency,$amount) {
  2.     $amount = urlencode($amount);
  3.     $from_Currency = urlencode($from_Currency);
  4.     $to_Currency = urlencode($to_Currency);
  5.     $url = "http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency";
  6.     $ch = curl_init();
  7.     $timeout = 0;
  8.     curl_setopt ($ch, CURLOPT_URL, $url);
  9.     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  10.     curl_setopt($ch,  CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
  11.     curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  12.     $rawdata = curl_exec($ch);
  13.     curl_close($ch);
  14.     $data = explode('"', utf8_decode($rawdata));
  15.     $data = explode(' ', $data['3']);
  16.     $var = preg_replace('@\s+@', '', $data['0']);
  17.     return number_format($var, 2, '.', '');
  18. }
  19.  
  20. echo currency_paypal('PEN', 'USD', 8000); //imprime 2892.26

Edito: De todas formas es mejor que busques otra alternativa, porque iGoogle será retirado el 1 de noviembre de 2013.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 19/10/2013 a las 10:27