views:

55

answers:

3

Hi All,

I am using a function that converts INR to USD. I am using this function:

    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);
    }

When I am passing 10 INR, it is working fine. But when I am passing 500000 INR the result coming is 11 312 You can see a SPACE after the second digit.

I just want to remove that. What modification I need to do in the function.

Thanks in advance

A: 

You could use a Regular Expression for that, removing everything what is not a number:

$amount = preg_replace("[^0-9.]", "", $amount);
Bobby
A: 

Your can use str_replce to delete all spaces from the final string as:

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

Alternatively, the only allowed char in the final result are digits and period(.).

You can delete rest of the char as:

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

strtr() is faster for removing one character (it's optimized for that) so you can do

strtr($str, " ", "");
Ólafur Waage