WordPress调用腾讯微博 PHP单文件

7

模板首页导航栏下面写了一句废话,早就想调用一下微博,腾讯官方发布了微博的API,弱弱的去研究了一下,JASON什么的太麻烦,我只是想抽几句话出来而已,于是就有了这篇文章,原理依然是通过PHP读取远程文件(果然是小偷程序写多了)。

程序会在wp-content/cache目录生成一个缓存文件,理论上是不会影响网站速度的,更新时间为24小时,鄙人比较懒更新不勤快,常更新的友友可以缩短一下缓存时间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//将数组保存至缓存文件
function array2file($file,$array){
    $fp = fopen($file, "wb");
    fwrite($fp, serialize($array));
    fclose($fp);
}
//从缓存文件中读取数组
function file2array($file){
    if(!file_exists($file)){
        exitstr("ERR");
    }
    $handle = fopen($file,"rb");
    $contents = fread($handle,filesize($file));
    fclose($handle);
    return unserialize($contents);
}
 
$wb_cache = dirname(dirname(dirname(__FILE__))).'/cache/tencent.dat';
 
//判断缓存文件是存在与否超时 这里设置时间为24小时 86400
if (file_exists($wb_cache) && filemtime($wb_cache) + 86400 > time()) {
	//读取缓存
	$wb_data = file2array($wb_cache);
} else {
	//读取新的内容,并缓存数据
	$wb_result = file_get_contents('http://t.qq.com/vkaster');
	//过滤内容中的链接地址
	$wb_result = preg_replace('/<a[^>]+>(.+?)<\/a>/i', '', $wb_result);
 
	if( preg_match_all('/<div\sclass=\"msgCnt\"\>(.*?)\<\/div>/', $wb_result, $wb_data) ){
		$wb_data = array_slice($wb_data[1],0,5);
		array2file($wb_cache, $wb_data);
	}
}
 
print_r($wb_data);

可以直接把代码复制到WB.PHP,放到模板目录,在需要显示的地方引用就可以了,演示请看首页

共 7 条评论

  1. 回复

    调用后是数据,每条微博前都添加了[1] => 请问怎么去掉? 本人PHP菜鸟

  2. 回复

    谢谢博主分享了啊

  3. 回复

    呃,俺的博客用的就是腾讯提供的那个API,程序咱不太懂,就将就着偷懒吧。

    • 回复

      没看到内容,只有个立即收听按钮啊

  4. 回复

    有木有可以读取新浪微博的代码啊?

    • 回复

      代码可以修改一下,不分什么网站的,跟采集差不多

  5. 回复

    很实用,谢博主分享

回复 朽木 X

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...