0

USD から INR に通貨を変換しようとしています。次のコードを使用します。

function currency($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];
$var=str_replace('Indian rupees','',$var);
$var=str_replace(' ', '', $var);
$var = preg_replace('/\s+/', '', $var);
//return floatval($var);
return $var;
}

戻り値に通貨単位とスペースを含まないようにしたいのですが、完全な浮動小数点値が必要です。str_replace() で通貨単位を削除しますが、floatval() を使用した float へのこの変換が期待どおりに機能しないため、スペースを削除できません。私を助けてください。

4

2 に答える 2

0

number_formatを使用してソリューションを取得しようとしました。また、ここで指定した詳細リンクを確認できます。

あなたはそれを次のように置き換えることができます

$var = preg_replace('/\s+/', '', $var);
//return floatval($var);
return number_format($var,2);

もっとお手伝いできることがあれば教えてください

于 2013-07-06T06:13:32.550 に答える
0

あなたの問題は、真ん中にスペースのある数字があることだと思います。スペースを削除する方法は次のとおりです。

$output = "3 128.71535";

$out = preg_replace("/\s/", "", $output);
echo $out; //outputs: 3128.71535

アップデート

または、数字とピリオド以外のものを削除できます。

$output = "3 128.71535";

$out = preg_replace("/[^0-9.]/", "", $output);
echo $out; //outputs: 3128.71535
于 2013-07-06T06:15:02.933 に答える