Heim > php教程 > php手册 > 论坛新帖提醒工具

论坛新帖提醒工具

WBOY
Freigeben: 2016-06-06 20:08:34
Original
1564 Leute haben es durchsucht

直接切入正题,使用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论坛任务区一个版块为例:


<!--编码与目标站一致-->
新帖提醒工具
//请求桌面通知权限
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\" >(.*)/',$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("<?php echo $v;?>");
			<?php }
		}
	}
	unset($_SESSION['title']); //清空SESSION标题数组
	$_SESSION['title'] = $title[1]; //将新抓取的标题数组存入SESSION标题数组
	echo "setTimeout('refresh()',$sleep)"; //刷新页面
}
?>
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage