php - php加载api非常慢
问题描述
我有这个代码,作为一个 php 文件,我将它包含在索引中并显示 BTC/ETH 值,网站加载非常慢,有什么建议可以让它运行得更快吗?也许我在这里的代码做错了,我是 json 的新手 :)。
感谢您的帮助!
<?php
function getCryptoPrices($url)
{
$decode = file_get_contents($url);
return json_decode($decode, true);
}
/* BTC USD */
$BTC_USD = getCryptoPrices('https://www.bitstamp.net/api/ticker/');
$BTC_VALUE = $BTC_USD['last'];
/* ETH USD */
$ETH_USD = getCryptoPrices('https://www.bitstamp.net/api/v2/ticker/ethusd/');
$ETH_VALUE = $ETH_USD['last'];
session_start();
$_SESSION['BTC'] = $BTC_VALUE;
$_SESSION['ETH'] = $ETH_VALUE;
?>
解决方案
您可以使用 CURL 非常快地读取 url 中的内容。如果服务器不存在“curl”,则必须在服务器中安装“curl”,然后尝试此功能。
$returned_content = get_data('https://www.bitstamp.net/api/ticker/');
编码
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
推荐阅读
- python - 根据其他列的付款数据返回活动或非活动
- react-native - React.createElement:类型无效 - 需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到了对象
- xml - 在 xml 操作中将函数作为参数传递
- airflow-scheduler - Airflow dag 未按照开始日期和计划间隔运行
- vue.js - VueJS date piker Vuetify 监听器
- oracle - 嵌套在宏中的用户定义函数 - Framework Manager
- tensorflow - 在 Colab TPU 上保存模型时速度极慢
- python - Pandas df 操作 - 将数据分成 2 列
- c# - Directory.Exists 返回 true 但 Directory.GetDirectories 返回空列表
- xml - 对自定义域的 xsl 条带排序 xsi:schemaLocation