php环境下,两种汇率接口,已经测试通过

方法一:中国银行版本,简单粗暴

//中国银行汇率接口,简单粗暴
//参数pjname:1316美元1326欧元1314英镑
public function getExchangeRate()
{
	$date = date("Y-m-d", time());
	//获得页面代码
	$data = file_get_contents("http://srh.bankofchina.com/search/whpj/search.jsp?erectDate=".$date."&nothing=".$date."&pjname=1316&page=1");
	//去掉非字符
	$data = str_replace(array(" ","\r","\n","\t"), "", $data);
	//得到汇率代码
	preg_match('/<tr>[\s]*<td>美元<\/td>[\s]*<td>[\s|\S]*<\/td>[\s]*<\/tr>/',$data, $converted);
	//开始各种调整格式,为了整理为数组
	$data = str_replace("</tr><tr>", ";", $converted[0]);
	$data = str_replace(array("<tr>","</tr>"), "", $data);
	$data = str_replace("</td><td>", ",", $data);
	$data = str_replace(array("<td>","</td>"), "", $data);
	$rateList = explode(";", $data);
	$rate = explode(",", $rateList[0]);
	//$rate [0] 国家 [1] 现汇买入价 [2]现钞买入价[3]现汇卖出价[4]现钞卖出价[5]外管局中间价[6]中行折算价
	$rate = $rate[3];
	$rate = round(($rate/100),2);
	if(is_numeric($rate))return $rate;
	else return false;
}

方法二:聚合数据版本,不稳定,但是可用。主要是有访问次数限制。

public function exchangeRate(){
	$key="390*****************************";//32位密钥需要申请
	$url = "http://op.juhe.cn/onebox/exchange/currency";
	$params = array(
		"from" =>"USD",                                                                                     //转换汇率前的货币代码
		"to" => "CNY",                                                                                          //转换汇率成的货币代码
		"key" => $key,                                                                                          //应用APPKEY(应用详细页查询)
	);
	$paramstring = http_build_query($params);
	$content =$this-> juhecurl($url,$paramstring);
	$result = json_decode($content,true);
	if($result){
		if($result['error_code']=='0'){
			$rate = $result['result']['0']['result'];
			param::set_cookie('rate',$rate,86400+SYS_TIME);
		}else{
			$rate = 6.70;
			param::set_cookie('rate',$rate,86400+SYS_TIME);
		}
	}else{
		$rate = 6.70;
		param::set_cookie('rate',$rate,86400+SYS_TIME);
	}
	return $rate;
}

public function juhecurl($url,$params=false,$ispost=0){
	$httpInfo = array();
	$ch = curl_init();
	curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
	curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
	curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
	curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	if( $ispost )
	{
		curl_setopt( $ch , CURLOPT_POST , true );
		curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
		curl_setopt( $ch , CURLOPT_URL , $url );
	}else{
		if($params){
			curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
		}else{
			curl_setopt( $ch , CURLOPT_URL , $url);
		}
	}
	$response = curl_exec( $ch );
	if ($response === FALSE) {
		//echo "cURL Error: " . curl_error($ch);
		return false;
	}
	$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
	$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
	curl_close( $ch );
	return $response;
}

 

以下是一个基于 PHP 和 JavaScript 的实时汇率计算器代码示例: PHP 汇率接口调用代码: ```php <?php // 定义 API URL $url = "https://api.exchangeratesapi.io/latest"; // 获取请求参数 $base = $_GET['base']; $target = $_GET['target']; $amount = $_GET['amount']; // 构造请求 URL $api_url = $url . "?base=" . $base . "&symbols=" . $target; // 发送请求并获取 API 响应 $response = file_get_contents($api_url); $data = json_decode($response, true); // 计算兑换金额 $result = $data['rates'][$target] * $amount; // 返回结果 echo number_format($result, 2); ?> ``` JavaScript 汇率计算器代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>汇率计算器</title> </head> <body> <h1>汇率计算器</h1> <p>1 EUR = <span id="rate"></span> USD</p> <input type="number" id="amount" placeholder="请输入金额"> <select id="base"> <option value="EUR">欧元</option> <option value="USD">美元</option> <option value="JPY">日元</option> </select> <select id="target"> <option value="EUR">欧元</option> <option value="USD">美元</option> <option value="JPY">日元</option> </select> <button onclick="calculate()">计算</button> <p>兑换金额为: <span id="result"></span> </p> <script> function calculate() { // 获取用户输入 var base = document.getElementById("base").value; var target = document.getElementById("target").value; var amount = document.getElementById("amount").value; // 调用 PHP API 获取汇率 var api_url = "api.php?base=" + base + "&target=" + target + "&amount=" + amount; var xhr = new XMLHttpRequest(); xhr.open("GET", api_url, true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var rate = JSON.parse(xhr.responseText); document.getElementById("rate").innerHTML = rate; document.getElementById("result").innerHTML = rate * amount; } }; } </script> </body> </html> ``` 上面的代码演示了如何使用 PHP 调用外部汇率接口,并使用 JavaScript 实现实时汇率计算器。用户可以选择不同的货币,输入金额,然后点击“计算”按钮,程序就会自动调用汇率接口,计算出兑换金额并显示在页面上。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜爱cpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值