php-binance-api快速开始:如何用3行代码获取币安全市场行情价格
php-binance-api 是一款开源的异步 PHP 库,专为对接币安(Binance)API 设计,帮你用极简代码获取币安全市场行情价格、K线、深度数据和 WebSocket 实时推送,还支持下单、止盈止损等交易功能,是 PHP 开发者接入币安市场的上手最快的选择。
php-binance-api 安装指南:最快完成安装的方法
方式一:Composer 一键安装(推荐)
在你的项目目录下执行:
composer require jaggedsoft/php-binance-api
方式二:Git 克隆仓库
git clone https://gitcode.com/gh_mirrors/ph/php-binance-api
克隆后,项目根目录的 php-binance-api.php 就是核心库文件,examples/ 目录下有全部功能示例。
环境要求:PHP ≥ 7.4,并安装
ext-curl扩展(见 composer.json)。
配置 API Key(3 种方式)
只查行情可以不配 Key;涉及账户和交易时才需要,建议放在主目录配置文件,避免密钥写进代码:
mkdir -vp ~/.config/jaggedsoft/
cat > ~/.config/jaggedsoft/php-binance-api.json << EOF
{
"api-key": "<api key>",
"api-secret": "<secret>"
}
EOF
更多配置方式(指定配置文件、直接传参、代理设置)可参考 examples/home_directory_config.php 和 examples/proxy_config.php:
require 'vendor/autoload.php';
// 1. 读取主目录配置
$api = new Binance\API();
// 2. 指定配置文件
$api = new Binance\API("somefile.json");
// 3. 直接传入 key 和 secret
$api = new Binance\API("<api key>", "<secret>");
3行PHP代码,获取币安全市场行情价格
这是本文的重点——只需要 3 行代码,就能拿到币安所有交易对的最新价格(参考 examples/get_prices.php):
require 'php-binance-api.php';
$api = new Binance\API();
$ticker = $api->prices(); // 返回全部交易对最新价格
运行后你会得到一个以交易对为键、最新价格为值的数组:
Array
(
[BTCUSDT] => 6028.95000000
[ETHUSDT] => 304.98000000
[BNBBTC] => 0.00021479
[LTCBTC] => 0.00967400
...
)
获取指定交易对价格:price() 方法实战
如果只关心某一只币(比如 BNB),用 price() 即可,一行返回:
$price = $api->price("BNBBTC");
echo "Price of BNB: {$price} BTC.".PHP_EOL;
// 输出:Price of BNB: 0.00021479 BTC.
常用行情接口一览表
| 方法 | 作用 | 参考示例 |
|---|---|---|
$api->prices() | 获取全部交易对最新价格 | examples/get_prices.php |
$api->price("BNBBTC") | 获取单个交易对最新价格 | examples/get_prices.php |
$api->prevDay("BNBBTC") | 24小时涨跌统计(含涨跌幅) | examples/prevday.php |
$api->candlesticks("BNBBTC", "5m") | K线/蜡烛图数据 | examples/candles.php |
$api->depth("ETHBTC") | 市场深度(买卖盘) | examples/depth.php |
$api->bookPrices() | 全部买一/卖一价格 | examples/book_prices.php |
K线数据支持 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M 等周期(见 examples/candles.php):
$ticks = $api->candlesticks("BNBBTC", "5m");
24小时涨跌统计,一行代码拿到涨跌幅百分比:
$prevDay = $api->prevDay("BNBBTC");
echo "BNB 24h change: ".$prevDay['priceChangePercent']."%".PHP_EOL;
WebSocket 实时行情推送:miniTicker 与 kline 用法
想要"实时"行情而不是轮询?php-binance-api 内置 WebSocket 支持,传入一个回调函数即可持续接收数据(见 examples/web_socket_miniticker.php):
$api->miniTicker(function($api, $ticker) {
print_r($ticker); // 所有交易对最新成交、开高低收、成交量
});
实时 K线更新,适合做图表面板(见 examples/web_socket_kline.php):
$api->chart(["BNBBTC"], "15m", function($api, $symbol, $chart) {
echo "{$symbol} chart update\n";
print_r($chart);
});
其他实时数据流还包括交易记录(trades)、单交易对行情(ticker)、深度缓存(depthCache)和用户数据推送(userData),示例分别位于 examples/web_socket_trades.php、examples/web_socket_depth.php、examples/web_socket_userdata.php。
常见问题排查:限流、时间同步与测试网
接口限流(Rate Limiting)
高频调用容易触发限流,官方提供了限流包装类(beta),两行代码即可启用:
$api = new Binance\API();
$api = new Binance\RateLimiter($api);
实现见 php-binance-api-rate-limiter.php,用法见 examples/ratelimiter.php。
时间不同步报错
如果看到 Timestamp ... outside of the recvWindow 或 -1021 错误,说明系统时间和服务器偏差超过 1 秒,先同步系统时间,或调用:
$api->useServerTime(); // 在任何请求之前执行
用测试网练手
在 Binance Testnet 申请专用 Key,配置文件加上 "use-testnet": true 即可安全演练交易,示例见 examples/orders_testnet.php。
安全提醒:API Secret 请勿写进代码或提交到版本库,优先使用主目录配置文件;生产环境建议只开通"现货交易"权限并绑定 IP 白名单。
参考文件清单
- php-binance-api.php —— 核心库(API + WebSocket 全部实现)
- php-binance-api-rate-limiter.php —— 限流包装类
- examples/get_prices.php —— 获取币安行情价格入门示例
- examples/balances.php —— 账户余额与估值
- examples/orders.php —— 下单示例
- tests/BinanceLiveTests.php、tests/BinanceStaticTests.php —— 测试用例
3 行代码已经跑通? 下一步可以顺着 examples/ 目录探索交易下单、止盈止损与实时深度图,把币安行情数据真正搬进你的 PHP 项目 🚀
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



