PHP 项目中使用免费汇率API获取实时汇率
在 PHP 项目中,处理多币种数据时,实时汇率非常关键。通过免费汇率API,可以轻松获取美元、欧元等常用币种的最新价格,并保持数据及时更新。
WebSocket 连接与订阅
PHP 可以使用 Ratchet 或 WebSocket 客户端库,连接接口并订阅币种。以 AllTick API 为例,这个免费汇率API 可以订阅美元、欧元等实时汇率:
require 'vendor/autoload.php';
use WebSocket\Client;
$wsUrl = "wss://apis.alltick.co/forex/realtime";
$client = new Client($wsUrl);
$subscribe = [
"type" => "subscribe",
"symbols" => ["USDCNY", "EURUSD"]
];
$client->send(json_encode($subscribe));
while (true) {
$message = $client->receive();
$data = json_decode($message, true);
if (!empty($data['quotes'])) {
foreach ($data['quotes'] as $symbol => $quote) {
echo date('H:i:s') . " $symbol: {$quote['price']}\n";
}
}
}
小提示:WebSocket 会持续推送数据,比轮询请求更高效,也避免频繁调用免费汇率API 的接口。
数据处理与展示
接收到实时数据后,可以直接用于前端展示或存入数据库:
| 货币对 | 当前价格 | 更新时间 |
| ——- | ——- | ——– |
| USDCNY | 7.12 | 12:34:56 |
| EURUSD | 1.09 | 12:34:56 |
PHP 生成 HTML 表格示例:
echo "<table border='1'><tr><th>货币对</th><th>当前价格</th><th>更新时间</th></tr>";
foreach ($data['quotes'] as $symbol => $quote) {
echo "<tr><td>$symbol</td><td>{$quote['price']}</td><td>" . date('H:i:s') . "</td></tr>";
}
echo "</table>";
缓存与刷新策略
实时汇率频繁变化,如果每次都请求接口可能增加延迟。可以使用缓存控制刷新频率:
$cacheFile = __DIR__ . '/forex_ws_cache.json';
file_put_contents($cacheFile, json_encode($data));
前端或其他脚本可定时读取缓存,而无需每次都处理 WebSocket 数据。
应用场景
- 电商平台显示实时汇率价格
- 财务系统多币种结算
- 数据分析或报表生成
通过免费汇率API 获取的数据,PHP 处理灵活,同时保持数据实时性和稳定性。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu