作者:一起回到我们的那个夏天 | 来源:互联网 | 2018-05-12 07:50
直接切入正题,使用PHP+HTML5开发论坛新帖实时提醒工具。看看开发思路:为了保证浏览器最小化也能收到消息提醒,需要用到HTML5的Notifications特性,推荐阅读:Notifications桌面提醒www.1990c.com?p833下面以监控admin5论坛任务区一个版块为例:
直接切入正题,使用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();
}
(.*)<\/a>/',$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\" >(.*)<\/a>/',$str,$title); //抓取帖子标题
preg_match_all('/(.*)<\/span><\/em>/',$str,$time); //抓取发帖时间
foreach($title[1] as $k => $v) {
if(!in_array($v,$_SESSION['title'])) { //判断是否为新帖子
if(($now - strtotime($time[2][$k])) <300) { //判断是否为5分钟内发表的新帖
?>
notify("");
为了方便阅读,代码已经精简,各位可以根据实际需求修改,此外,使用Ajax也是一个不错的方法,欢迎交流。
原文地址:论坛新帖提醒工具, 感谢原作者分享。