很多站长朋友们都不太清楚php生日提醒功能,今天小编就来给大家整理php生日提醒功能,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP生日提醒判断语句问题! 2、 PHP生日提醒源码 3、 PHP怎么实现定时提醒功能 PHP生日提醒判断语句问题!<?php
$i = 0;
$time = date("m-d"); //取得当前月日
while($array = mysql_fetch_array($result))
{
$birthday = date("m-d",strtotime($array['birthday'])); //取得数据库月日
if ($time == $birthday)
{
echo "今天生日";
$i++;
}
}
if ($i == 0) //判断今天是否有人过生日,没有则输出
{
echo "今天没有人过生日";
}
?>
PHP生日提醒源码CREATE TABLE `users` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`username` varchar(60) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`sex` tinyint(1) unsigned NOT NULL default '0',
`birthday` date NOT NULL default '0000-00-00',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
index.php
<?php
// mysql连接
$link = mysql_connect('数据库主机:端口', '用户名', '密码');
mysql_select_db('数据库名称', $link);
mysql_query('SET NAMES utf8', $link);
// 取出users列表
$result = mysql_query('SELECT * FROM `users`');
$data = array();
while ($row = mysql_fetch_assoc($result))
{
$data[] = $row;
}
/**
* 自定义函数,验证生日是否提醒,只适用于新历,农历不适用 .
*
* @param string $birthday 出生日期
* @param int $reminder 提醒天数,未来$reminder天内生日提醒
* @return bool true为提醒 false为不提醒
*/
function birthdayReminder($birthday, $reminder = 7)
{
$preg = '/^(\d{4}|\d{2}|)[- ]?(\d{2})[- ]?(\d{2})$/';
$Ymd = array();
preg_match($preg, $birthday, $Ymd);
if (empty($Ymd))
{
return false;
}
var_dump($Ymd);
$birthday = $Ymd[2].'-'.$Ymd[3];
$time = time();
for ($i = 1; $i <= $reminder; $i++)
{
if (date('m-d', $time) == $birthday)
{
return true;
}
$time = $time + 24 * 3600;
}
return false;
}
// 显示users列表
$str = '<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td>ID</td>
<td>UserName</td>
<td>Password</td>
<td>Sex</td>
<td>Birthday</td>
<td>Reminder</td>
</tr>';
foreach($data as $user)
{
$str .= '<tr>
<td>'.$user['id'].'</td>
<td>'.$user['username'].'</td>
<td>'.$user['password'].'</td>
<td>'.$user['sex'].'</td>
<td>'.$user['birthday'].'</td>
<td>';
if(birthdayReminder($user['birthday'])
{
$str .= '生日快到了';
}
else
{
$str .= '生日还遥遥无期呢';
}
$str .= '</td>
</tr>';
}
$str .= '</table>';
print $str;
?>
ps:我敲了一个多小时,不加到100分真不够意思
PHP怎么实现定时提醒功能一般来说,PHP是作为网站脚本语言进行运行的,也就是客户端请求服务器网关后,由CGI程序调用PHP来解析代码并执行,然后将执行结果发送给用户。一般是这种模式。
上面这种模式意味着,没有用户请求,就不会执行PHP代码,也就无法“定时提醒”。
要实现“定时提醒”功能,就要保证让PHP一直处于运行状态(当然,通过操作系统去设置定时任务也行,但是那就与PHP无关了)(或者,将脚本超时时间去掉,然后让PHP代码进入一个“死循环”,不过这种方式非常不好,不建议)。
网上有一些比较成熟的框架,比如我比较喜欢的workerman,你可以将PHP程序做成一个守护进程服务,这样就能保持PHP一直处于运行状态,到时间了,就自动调用一个函数执行一段代码就行,一般是通过Websocket通知用户(如果目标用户浏览器允许使用HTML5的话)。
关于php生日提醒功能的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php生日提醒功能 php 日期函数的详细内容...