模板首页导航栏下面写了一句废话,早就想调用一下微博,腾讯官方发布了微博的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,放到模板目录,在需要显示的地方引用就可以了,演示请看首页。
调用后是数据,每条微博前都添加了[1] => 请问怎么去掉? 本人PHP菜鸟
谢谢博主分享了啊
呃,俺的博客用的就是腾讯提供的那个API,程序咱不太懂,就将就着偷懒吧。
没看到内容,只有个立即收听按钮啊
有木有可以读取新浪微博的代码啊?
代码可以修改一下,不分什么网站的,跟采集差不多
很实用,谢博主分享