Webサービス/サンプル/為替レート from XMethods のバックアップ(No.3) |
|

XMethodsは、組み込みパーツとして使えるWebサービスを無償提供してくれています。例として、為替情報Webサービスを利用してみることにしました。簡単ですね。
サンプルソース1
<?php
require_once('SOAP/Client.php');
$soapclient = new SOAP_Client(
'http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl',
true);
$params = array('country1' => 'new Zealand', 'country2' => 'japan');
$Result = $soapclient->call('getRate', $params);
echo "1NZ$ = " . $Result . "円";
?>
で、上のサンプルだとページリクエスト毎にWebサービスを呼び出しちゃうわけですが、そうすると遅いし、Publicサーバにも負荷がかかっちゃうということで、1時間毎に更新するように変更。
サンプルソース2
<?php
require_once('SOAP/Client.php');
$fp = @fopen("exchangeNZD.dat","r+");
$data = split(",", fgets($fp));
$lastupdatetime = $data[0];
$Result = $data[1];
if ($Result == null || $lastupdatetime == null
|| (time() - $lastupdatetime) > 3600) {
$soapclient = new SOAP_Client(
'http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl',
true);
$params = array('country1' => 'new Zealand', 'country2' => 'japan');
$Result = $soapclient->call('getRate', $params);
rewind($fp);
flock($fp, LOCK_EX);
fputs($fp, time() . ',' . $Result);
}
fclose($fp);
echo $Result . "円 = 1NZ$";
?>