首页 > php教程 > php手册 > 正文

论坛新帖提醒工具

php中文网
发布: 2016-06-06 20:08:34
原创
1790人浏览过

直接切入正题,使用PHP+HTML5开发论坛新帖实时提醒工具。 看看开发思路: 为了保证浏览器最小化也能收到消息提醒,需要用到HTML5的Notifications特性,推荐阅读: Notifications桌面提醒 http://www.1990c.com/?p=833 下面以监控admin5论坛任务区一个版块为例:

PHP+HTML5论坛新帖实时提醒工具

直接切入正题,使用PHP+HTML5开发论坛新帖实时提醒工具。
 
看看开发思路:
 
PHP+HTML5论坛新帖实时提醒工具开发思路

为了保证浏览器最小化也能收到消息提醒,需要用到HTML5的Notifications特性,推荐阅读:

notifications桌面提醒
http://www.1990c.com/?p=833

 
 

下面以监控admin5论坛任务区一个版块为例:

时代购物
时代购物

具有分类浏览商品或使用搜索工具查找商品,可按价格、商品分类、关键字搜索商品,可打印订单的详细信息以及电子邮件通知,保存购物车,查看购物车,清空购物车,查看已经提交的订单,会员注册、享受会员价格,会员登录,市场价,会员价和VIP会员价的比较,为朋友订购商品(送礼物的好办法哦), 完整的客户服务中心,新品上架展示区,推荐商品展示区,特价商品展示区,销售排行展示区,关注排行展示区阅读、发表商品评论信息并

时代购物 0
查看详情 时代购物
<!DOCTYPE html>
<!--编码与目标站一致-->
新帖提醒工具
//请求桌面通知权限
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();
}
<?php
$url = "http://bbs.admin5.com/forum-560-1.html"; //目标版块
$sleep = 5000; //监控频率(5秒)
if(empty($_SESSION['title'])) { //首次抓取
	$str = file_get_contents($url); 
	preg_match_all('/onclick=\"atarget\(this\)\" class=\"xst\" >(.*)<\/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("<?php echo $v;?>");
			<?php
			}
		}
	}
	unset($_SESSION['title']); //清空SESSION标题数组
	$_SESSION['title'] = $title[1]; //将新抓取的标题数组存入SESSION标题数组
	echo "setTimeout('refresh()',$sleep)"; //刷新页面
}
?>
登录后复制

为了方便阅读,代码已经精简,各位可以根据实际需求修改,此外,使用Ajax也是一个不错的方法,欢迎交流。

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号