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

论坛新帖提醒工具

Jun 06, 2016 pm 08:08 PM
使用 工具 rappeler 论坛

直接切入正题,使用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)"; //刷新页面
}
?>
Copier après la connexion

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Comment intégrer efficacement les services Node.js ou Python sous l'architecture LAMP? Comment intégrer efficacement les services Node.js ou Python sous l'architecture LAMP? Apr 01, 2025 pm 02:48 PM

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Comment configurer la tâche de synchronisation APScheduler en tant que service sur macOS? Comment configurer la tâche de synchronisation APScheduler en tant que service sur macOS? Apr 01, 2025 pm 06:09 PM

Configurez la tâche de synchronisation APScheduler en tant que service sur la plate-forme MacOS, si vous souhaitez configurer la tâche de synchronisation APScheduler en tant que service, similaire à Ngin ...

Dans Langchain, comment utiliser AgentExecutor pour remplacer la fonction Initialize_agent désactivée? Dans Langchain, comment utiliser AgentExecutor pour remplacer la fonction Initialize_agent désactivée? Apr 01, 2025 pm 04:18 PM

Comment remplacer la fonction Initialize_agent désactivée dans Langchain? Dans la bibliothèque de Langchain, initialize_agent ...

Les annotations des paramètres Python peuvent-elles utiliser des chaînes? Les annotations des paramètres Python peuvent-elles utiliser des chaînes? Apr 01, 2025 pm 08:39 PM

Utilisation alternative des annotations des paramètres Python Dans la programmation Python, les annotations des paramètres sont une fonction très utile qui peut aider les développeurs à mieux comprendre et utiliser les fonctions ...

L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

Comment assurer la haute disponibilité de MongoDB sur Debian Comment assurer la haute disponibilité de MongoDB sur Debian Apr 02, 2025 am 07:21 AM

Cet article décrit comment construire une base de données MongoDB hautement disponible sur un système Debian. Nous explorerons plusieurs façons de garantir que la sécurité des données et les services continueront de fonctionner. Stratégie clé: réplicaset: réplicaset: Utilisez des répliques pour obtenir la redondance des données et le basculement automatique. Lorsqu'un nœud maître échoue, l'ensemble de répliques élise automatiquement un nouveau nœud maître pour assurer la disponibilité continue du service. Sauvegarde et récupération des données: utilisez régulièrement la commande Mongodump pour sauvegarder la base de données et formuler des stratégies de récupération efficaces pour faire face au risque de perte de données. Surveillance et alarmes: déploier les outils de surveillance (tels que Prometheus, Grafana) pour surveiller l'état de course de MongoDB en temps réel, et

Méthode de surveillance postgresql sous Debian Méthode de surveillance postgresql sous Debian Apr 02, 2025 am 07:27 AM

Cet article présente une variété de méthodes et d'outils pour surveiller les bases de données PostgreSQL sous le système Debian, vous aidant à saisir pleinement la surveillance des performances de la base de données. 1. Utilisez PostgreSQL pour reprendre la surveillance Afficher PostgreSQL lui-même offre plusieurs vues pour surveiller les activités de la base de données: PG_STAT_ACTIVITY: affiche les activités de la base de données en temps réel, y compris les connexions, les requêtes, les transactions et autres informations. PG_STAT_REPLIcation: surveille l'état de réplication, en particulier adapté aux grappes de réplication de flux. PG_STAT_DATABASE: Fournit des statistiques de base de données, telles que la taille de la base de données, les temps de validation / recul des transactions et d'autres indicateurs clés. 2. Utilisez l'outil d'analyse de journaux pgbadg

See all articles