本文介绍如何使用PHP函数在站外调用zblog的数据。作者通过使用json_decode和file_get_contents函数,实现了从ZB生成JSON格式的文件,并在第三方站点调用这些数据。最后,作者开发了一个ZB站外数据调用插件,简化了调用过程。
这篇文章的触发点(没写错)是因为我注册了一个gebilaoli.com的域名,然后就打算做一个简单的个人展示网站。
因为有yeelz.com、zbpcool.com等好几个ZBlog的站点,我便考虑在gebilaoli.com里调用这几个zb站点的文章。
本来是想着等zblog1.7公测后使用API,结果猪跳票了。
那还能怎么办,自己想办法吧。
这里需要插播介绍一下json_decode这个函数。
json_decode是php5.2.0之后新增的一个PHP内置函数,其作用是对JSON格式的字符串进行编码。
说的直白点就是把一个JSON格式的字符串转换为PHP变量。
然后再插播一下file_get_contents函数。
该函数是用于把文件的内容读入到一个字符串中。
写到这里,思路已经很明确了,只需用file_get_contents读取一个JSON格式的文件然后用json_decode编码后再foreach输出就了了。
那么剩下的事情就是在ZB生成一个JSON格式的文件了。
那么如何在zb生成一个JSON格式的文件呢(老自媒体的感觉),简单地说,用Getlist获取文章列表,然后用file_put_contents生成文件即可。
Getlist的用法可以查看zblog官方wiki。
这时候有人要说了,你说了这么多我都不懂啊,于是我便写了一个ZB站外数据调用插件。。。
安装启用,按照自己需求做一下设置,就自动生成JSON格式的文件了。
剩下的只需要在第三方站点调用即可。
举个栗子:
$json=file_get_contents('http://127.0.0.1/zb_users/plugin/Jz52_gbll/laoli.txt'); $json_Array = json_decode($json,true); foreach ($json_Array as $lists) { echo $lists['url'].'<br>'.$lists['img'].'<br>'.$lists['title'].'<br>'.$lists['Intro'].'<br>'; }
那么问题来了,既然这么简单就解决了前面那一堆不是废话吗?
因为要水字数啊!!!!
最后,等zb1.7发布了这篇文章就没用了。