2010-10-04 7 views
0

J'utilise une fonction qui convertit INR en USD. J'utilise cette fonction:Remplacer une chaîne sur php

function convertCurrency($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 ($ch, CURLOPT_URL, $url); 
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"); 
     curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
     $rawdata = curl_exec($ch); 
     curl_close($ch); 
     $data = explode('"', $rawdata); 
     $data = explode(' ', $data['3']); 
     $var = $data[0]; 
     if($to_Currency == 'USD') 
      return round($var, 2); 
     else 
      return round($var, 0); 
    } 

Lorsque je passe 10 INR, il fonctionne bien. Mais quand je passe 500000 INR le résultat est 11 312 Vous pouvez voir un espace après le deuxième chiffre.

Je veux juste supprimer cela. Quelle modification je dois faire dans la fonction.

Merci à l'avance

Répondre

0

Votre peut utiliser str_replce pour supprimer tous les espaces de la chaîne finale:

$str = str_replace(' ','',$str); 

Alternativement, le seul caractère autorisé dans le résultat final est les chiffres et la période (.).

Vous pouvez supprimer reste du char comme:

$str = preg_replace('/[^\d.]/','',$str); 
0

Vous pouvez utiliser une expression régulière pour que, en supprimant tout ce qui est pas un numéro:

$amount = preg_replace("[^0-9.]", "", $amount); 
Questions connexes