直接切入正题,使用php+html5开发论坛新帖实时提醒工具。 看看开发思路: 为了保证浏览器最小化也能收到消息提醒,需要用到html5的notifications特性,推荐阅读: notifications桌面提醒 http://www.1990c.com/?p=833 下面以监控admin5论坛任务区一个版块为例:
直接切入正题,使用php+html5开发论坛新帖实时提醒工具。
看看开发思路:
为了保证浏览器最小化也能收到消息提醒,需要用到html5的notifications特性,推荐阅读:
notifications桌面提醒
http://www.1990c.com/?p=833
下面以监控admin5论坛任务区一个版块为例:
新帖提醒工具//请求桌面通知权限function init() { if (window.webkitnotifications) { window.webkitnotifications.requestpermission(); }}//消息提醒function notify(str){ var icon = logo.png; //图标路径 var title = 新帖提醒(+ time + 秒后自动关闭); //消息标题 var body = str; //消息内容 var popup = window.webkitnotifications.createnotification(icon, title, body); popup.show(); //显示消息}//刷新页面function refresh() { document.location.reload();}(.*)/',$str,$titledata); $_session['title'] = $titledata[1]; //抓取帖子标题存入session帖子数组 echo settimeout('refresh()',$sleep); //刷新页面} else { //非首次抓取 date_default_timezone_set('prc'); $now = mktime(); //计算当前时间 $str = file_get_contents($url); preg_match_all('/onclick=\atarget\(this\)\ class=\xst\ >(.*)/',$str,$title); //抓取帖子标题 preg_match_all('/(.*)/',$str,$time); //抓取发帖时间 foreach($title[1] as $k => $v) { if(!in_array($v,$_session['title'])) { //判断是否为新帖子 if(($now - strtotime($time[2][$k])) notify();
为了方便阅读,代码已经精简,各位可以根据实际需求修改,此外,使用ajax也是一个不错的方法,欢迎交流。
原文地址:论坛新帖提醒工具, 感谢原作者分享。