You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用Bittrex REST API时返回JSON自动输出至DOM问题排查

解决Bittrex API响应自动输出到DOM的问题

嘿,我帮你捋捋这个问题——你说把API响应存进变量了,但它还是自动输出到页面,这大概率是发起API请求的代码没配置对,导致响应直接被输出而不是乖乖存到变量里。从你贴的Bittrex类结构来看,问题应该出在你没展示出来的请求方法里(比如调用接口的getMarketData这类方法),常见的两种情况给你列出来:

1. 用file_get_contents请求时的问题

如果你的请求代码是类似这样的:

$response = file_get_contents($this->m_baseUrl . '/public/getmarketsummaries');

那问题就来了:file_get_contents默认会把拿到的内容直接输出到页面,不会只返回给变量。要改这个,得给它传个上下文参数,让它把内容返回给你:

// 创建上下文,设置忽略错误并返回内容
$context = stream_context_create([
    'http' => [
        'ignore_errors' => true
    ]
]);
// 第三个参数传入上下文,这样响应就会存在$response里
$response = file_get_contents($this->m_baseUrl . '/public/getmarketsummaries', false, $context);

2. 用cURL请求时的问题

要是你用的是cURL,那十有八九是没开CURLOPT_RETURNTRANSFER这个选项。默认情况下cURL会直接打印响应,开了这个选项才会把响应返回给变量:

$ch = curl_init($this->m_baseUrl . '/public/getmarketsummaries');
// 关键!开启这个选项,curl_exec才会返回响应内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 可选:如果环境里SSL验证有问题,可以临时关掉(生产环境建议保持开启)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);

另外,也别忘了检查下你的代码里有没有不小心残留的print、echo或者var_dump这类调试语句,有时候可能是调试完忘了删,导致响应被意外输出了~

内容的提问来源于stack exchange,提问作者ii iml0sto1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:19:01