Foros del Web » Programando para Internet » PHP »

convertir monto de soles a dolares

Estas en el tema de convertir monto de soles a dolares en el foro de PHP en Foros del Web. hola alguien me puede ayudar con esto: tengo el siguiente problema la funcion me convierto de soles a dolares y de dolares a soles para ...
  #1 (permalink)  
Antiguo 10/10/2013, 22:17
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 10 años, 9 meses
Puntos: 0
convertir monto de soles a dolares

hola alguien me puede ayudar con esto:
tengo el siguiente problema la funcion me convierto
de soles a dolares y de dolares a soles para enviar el monto a paypal
PEN=USD
pero el problemas es q cuando el monto es mas de 2000 soles
el resultado me devuelve como $1
ojo:esto convertiendo de soles a dolares.
HELP.


Código PHP:

function  currency_paypal($from_Currency,$to_Currency,$amount) {
$amount urlencode($amount);
$from_Currency urlencode($from_Currency);
$to_Currency urlencode($to_Currency);
$url "http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency";
$ch curl_init();
$timeout 0;
 
curl_setopt ($chCURLOPT_URL$url);
 
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
 
curl_setopt($ch,  CURLOPT_USERAGENT "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
 
curl_setopt ($chCURLOPT_CONNECTTIMEOUT$timeout);
$rawdata curl_exec($ch);
 
curl_close($ch);
$data explode('"'$rawdata);
$data explode(' '$data['3']);
$var $data['0'];
return 
$var//number_format($var, 2, '.', '');

  #2 (permalink)  
Antiguo 11/10/2013, 02:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: convertir monto de soles a dolares

Hasta donde recuerdo, Paypal acepta pagos en Soles y puede ser mejor opción que tratar de calcularlo en una web ajena, principalmente por posibles diferencias en cotización entre san google y Paypal.

Se me ocurren algunas (tonterías porque ya me estoy durmiendo) ideas como obtener el costo de un dólar en soles y realizar la operación en base a ese precio unitario.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/10/2013, 10:38
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: convertir monto de soles a dolares

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.
__________________
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; 11/10/2013 a las 10:50
  #4 (permalink)  
Antiguo 11/10/2013, 15:02
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 10 años, 9 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'.''');
}


  #5 (permalink)  
Antiguo 11/10/2013, 22:18
Avatar de freddy31DA  
Fecha de Ingreso: junio-2012
Mensajes: 84
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: convertir monto de soles a dolares

por si no lo sabias existe una libreria llamada .simple_html_dom.php
Website: http://sourceforge.net/projects/simplehtmldom/
te va a facilitar las cosas pruebala.

Etiquetas: dolares, monto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:28.