首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >需要帮助在wordpress网站上缓存json_decode(file_get_contents('api'))

需要帮助在wordpress网站上缓存json_decode(file_get_contents('api'))
EN

Stack Overflow用户
提问于 2018-03-07 01:42:34
回答 1查看 407关注 0票数 1

我试图从coinmarketcap的api中检索数据,并将数据存储到缓存文件中。如果缓存文件早于10分钟,则检索新数据并将其存储到缓存文件。除了缓存数据之外,我已经能够让一切正常工作。缓存文件从未在插件目录中创建。任何帮助都将不胜感激。以下是代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function Tickers($data){
    foreach($data as $item){
    echo "<a href=/currencies/" .$item->symbol. '/' . $item->name. ">$item->symbol</a>";    
    echo "<br>";
    echo '<span>$' . $item->price_usd . '</span>';
    echo "<br>";
    echo "<br>";
    }
}
function getdata(){
$time = 600; //seconds
$cache_file = 'wp-content/plugins/cryptocurrency_tickers/cache.txt';
if(file_exists($cache_file)){
if(time() - filemtime($cache_file) > $time) {    
// too old , re-fetch
  $data = json_decode(file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=20'));
    file_put_contents(cache_file,json_encode($data));
}
    else{
        //data is current
    }
}else {
    // create cache 
    $data = json_decode(file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=20'));
    file_put_contents(cache_file, json_encode($data));  
}

$data = json_decode(file_get_contents($cache_file));
Tickers($data);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 01:59:53

再看一遍您的代码,在$上的“cache_file”前面缺少“cache_file”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file_put_contents(cache_file,json_encode($data));

应该是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file_put_contents($cache_file,json_encode($data));

另外,当您从API获得json数据时,首先解码,然后编码,为什么不直接从API保存数据,它已经被json编码了。

代码的更好版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function Tickers($data){

    foreach($data as $item){
        echo "<a href=/currencies/" .$item->symbol. '/' . $item->name. ">$item->symbol</a>";
        echo "<br>";
        echo '<span>$' . $item->price_usd . '</span>';
        echo "<br>";
        echo "<br>";
    }
}

function getdata(){

    $time       = 600; //seconds
    $cache_file = '/path/to/cache.txt';

    if(file_exists($cache_file)){

        if(time() - filemtime($cache_file) > $time) {
            // too old , re-fetch
            $data = file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=20');

            file_put_contents($cache_file, $data);

        } else{
            //data is current
        }
    } else {
        // create cache
        $data = file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=20');

        file_put_contents($cache_file, $data);
    }

    $data = json_decode(file_get_contents($cache_file));

    Tickers($data);
}

getdata();

此外,确保插件目录是可写的,您的web服务器用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49148638

复制
相关文章
获取Bing图片作为WordPress等网站首页背景图
必应搜索的图片是什么这里就不说了,昨天渣渣龙在群里艾特要我把Bing的每日一图作为网站背景图
沈唁
2019/05/22
1.2K0
获取Bing图片作为WordPress等网站首页背景图
file_get_contents遍历api数据
使用【bootstrap】框架 关键代码: file_get_contents("API路径"); <table class="table table-hover table-bordered table-striped" style="text-align: center;"> <tr style="background-color: #F6F9FE;"> <th>编号</th> <th>标题</th> <th
红目香薰
2022/11/29
3160
file_get_contents遍历api数据
如何在网站上安装 WordPress
WordPress 是一个内容管理系统,可让你托管和构建网站。WordPress 包含插件架构和模板系统,因此你可以自定义任何网站以适合你的业务、博客、投资组合或在线商店。WordPress 以其易于安装而闻名。
海拥
2022/10/04
1.6K0
WordPress配置腾讯云CDN并实现发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
博客在CDN是加了又下,下了又加。昨天访问张戈博客学习的时候,感叹大牛的站优化的就是好!惊叹速度快之余发现张戈博客的服务器在国外,而且配置也不是很高。(优化出奇迹)
AlexTao
2019/07/16
2.9K0
WordPress配置腾讯云CDN并实现发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
ScintillaNET 需要帮助
Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示,代码自动完成以及代码提示等。而且在左边的空白处(margin),可以显示调试代码中非常有用的显示断点以及显示当前运行行等功能。而且,自定义风格的功能比其他大部分编辑器控件都开放,它允许用户自定
张善友
2018/01/22
1.5K0
WordPress发布文章主动推送到百度,加快收录保护原创
工作实在太忙,也没时间打理网站。最近公司额外交待了一些网站 SEO 方面的优化任务让我关注(这就是啥都要会、啥都要做的苦逼运维的真实写照了...)。 于是抽空看了下百度站长平台,至少看到了 2 个新消
张戈
2018/03/23
1.6K0
WordPress发布文章主动推送到百度,加快收录保护原创
PHP获取指定地区的天气
在开发网站的时候用到天气查询,由于是基于Wordpress的 所以有很多限制,先建一个【weather.php】的文件,然后看代码:
他叫自己MR.张
2019/07/01
1.2K0
php采集之效率最高的方法
想要让网站稳定发展,优质的文章是必不可少的,那我们没有好文章怎么办,我们可以Ctrl+C来借(ban)鉴(zhuan)文章,但是这效率还是不够快,这时候我们就需要来采集文章了,下面给大家介绍一下我的思路。
用砖头敲代码
2022/08/30
7940
PHP json_decode 需要注意的几点.
JSON在php中使用上非常方便, 但一些细节需要特别注意. 返回值并不能决定解析成功. 具体可以看一下示例, 分别对各种情况进行了测试.
Tuesday
2019/05/28
9920
PHP json_decode 需要注意的几点.
PHP fopen/file_get_contents与curl性能比较
1.fopen/file_get_contents 每次请求都会重新做 DNS 查询,并不对 DNS 信息进行缓存。
全栈程序员站长
2022/07/11
4500
【玩转腾讯云】WordPress配置腾讯云CDN并实现发布/更新文章审核评论自动清理CDN缓存
博客在CDN是加了又下,下了又加。昨天访问张戈博客学习的时候,感叹大牛的站优化的就是好!惊叹速度快之余发现张戈博客的服务器在国外,而且配置也不是很高。(优化出奇迹)
AlexTao
2020/04/22
5.4K3
听说你想在 WordPress 网站上嵌入 PPT ?
年底了,想在 WordPress 博客上展示自己的春节旅行计划,尝试在文章中插入一个旅行计划 PPT 结果长这个样子👇 你有没有遇到同样的情况,懊恼网页支持展示的内容无法满足我们的需求: 想展示年度家庭财务回顾的 Excel 文件,别人需要下载才能查看; 想展示明年的阅读计划 Word 文档,结果发现原生的 WordPress 也并不支持; 探店美食菜单、自驾攻略、经典名著电子书、课程课件等精彩的文件都无法直观地展示; 别着急,WordPress COS 插件的文档预览功能帮你丰富你的网站,无需下载
云存储
2022/01/14
8680
小程序客服功能开发之对接闲聊机器人
button组件设置open-type="contact"支持打开客服会话,但实际上很多人都不知道此功能如何使用,没必要去申请第三方平台,也不用认证企业号,什么类型的小程序都行,几行代码搞定
许坏
2019/07/18
1.6K0
小程序客服功能开发之对接闲聊机器人
听说你想在 WordPress 网站上嵌入 PPT ?
年底了,想在 WordPress 博客上展示自己的春节旅行计划,尝试在文章中插入一个旅行计划 PPT 结果长这个样子👇 你有没有遇到同样的情况,懊恼网页支持展示的内容无法满足我们的需求: 想展示年度家庭财务回顾的 Excel 文件,别人需要下载才能查看; 想展示明年的阅读计划 Word 文档,结果发现原生的 WordPress 也并不支持; 探店美食菜单、自驾攻略、经典名著电子书、课程课件等精彩的文件都无法直观地展示; 别着急,WordPress COS 插件的文档预览功能帮你丰富你的网站,无需下
云存储
2022/01/13
1.6K0
听说你想在 WordPress 网站上嵌入 PPT ?
WordPress发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
目前张戈博客同时使用了腾讯云、VeryCloud 以及七牛 CDN,其中腾讯云负责电信线路流量,VeryCloud 负责默认线路流量,而七牛主要是用于缩略图展示,你觉得这样做有什么好处? 一、兵分三路
张戈
2018/03/21
1.9K0
WordPress发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
FGMap API 帮助文档
FGMap API 帮助文档,如果需要用FGMap API进行地图开发的朋友,可以参考这个文档。
全栈程序员站长
2021/08/12
1.2K0
公众号菜单开发_公众平台下面菜单栏怎么设置
微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能。开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的回复信息或网页链接。自定义菜单接口将为公众账号的信息展示空间提供更多可能性。本文将针对自定义菜单做简单的开发应用,以供读者参考。
全栈程序员站长
2022/09/20
1.6K0
公众号菜单开发_公众平台下面菜单栏怎么设置
Bing每日一图
$time = date("Ymd", time()); $log = "./log/" . $time . '.txt'; //判断缓存文件是否存在 if (file_exists($log)) { //读取缓存 $imgurl = file_get_contents($log); //跳转至图片地址 header("Location: $imgurl"); } else { //获取b
Qicloud
2022/01/27
5570
wordpress实现发布文章主动推送(实时)给百度的方法
很多人为了节约时间,都选择了自动提交的方式。然而你们知道的,自动提交又可以分为主动推送(实时)、自动推送和sitemap三种链接提交通道。
可定
2020/04/20
1.4K0
点击加载更多

相似问题

json_decode file_get_contents帮助

41

需要web爬网帮助

22

向json_decode Twitter API添加缓存

10

json_decode帮助

32

需要Wordpress循环帮助

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文