Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/10/2013, 15:02
wilsonlazo
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: convertir monto de soles a dolares

Cita:
Iniciado por andresdzphp Ver Mensaje
Prueba así:

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 $var;
  18. }
  19.  
  20. echo currency_paypal('PEN', 'USD', 8000);

No necesitas aplicar number_format ya que google lo da formateado (pero si quieres hacerlo ya no te dará problemas), pero si te salen caracteres raros aveces y se corta el resto del valor, por eso usé utf8_decode y con preg_replace le quité unos espacios que sobran.
Gracias x tu respuesta: hice la prueba con tu funcion pero el valor que me llega
a paypal es de $2.00 de 8000; aqui se debe eso.

lo probe tambien quitando el:
Código PHP:
$amount number_format($amount2'.'''); 
pero paypal no me acepta.
Código PHP:
if($admin_curr =='USD'){
    
$amount $a_amount;
}elseif(
$chk_curr =='USD'){
    
$amount $c_amount;
}else{
    
$amount =currency_paypal('PEN''USD',8000);
    
$amount number_format($amount2'.''');
}