Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/10/2013, 11:42
wilsonlazo
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: dar formato a dólares americanos

Cita:
Iniciado por andresdzphp Ver Mensaje
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.
entonces tiene que devolverme en este formato:
2892.264
Código PHP:
$pap =number_format(2892.2642'.''').'</br>'
resultado..:2892.26
puedo recorrer con un for y preguntar si es diferente a numero q no me concatene es factible..