PHP+Mysql+jQuery实现发布微博程序 php篇 |
|
先还是要说明本例的业务流程: 效果图:
数据表 CREATE TABLE `say` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL default 0, `content` varchar(200) NOT NULL, `addtime` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 注意,本例中将时间字段:addtime的类型设置为int,是为了后续的时间处理方便,在很多应用中(如Discuz论坛)都是将时间类型转成数字型 。
/*时间转换函数*/
function tranTime($time) {
$rtime = date("m-d H:i",$time);
$htime = date("H:i",$time);
$time = time() - $time;
if ($time < 60) {
$str = 刚刚;
}
elseif ($time < 60 * 60) {
$min = floor($time/60);
$str = $min.分钟前;
}
elseif ($time < 60 * 60 * 24) {
$h = floor($time/(60*60));
$str = $h.小时前 .$htime;
}
elseif ($time < 60 * 60 * 24 * 3) {
$d = floor($time/(60*60*24));
if($d==1)
$str = 昨天 .$rtime;
else
$str = 前天 .$rtime;
}
else {
$str = $rtime;
}
return $str;
}
格式化输出函数是将得到的用户信息和发布内容及时间按照一定的格式输出到前端页面的函数,代码如下:
function formatSay($say,$dt,$uid){
$say=htmlspecialchars(stripslashes($say));
return
<div class="saylist"><a href="#"><img src="images/.$uid..jpg" width="50" height="50"
alt="demo" /></a>
<div class="saytxt">
<p><strong><a href="#">demo_.$uid.</a></strong> .
preg_replace(/((?:http|https|ftp):\/\/(?:[A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):
?(\d+)?\/?[^\s\"\]+)/i,<a href="$1" rel="nofollow" target="blank">$1</a>,$say).
</p><div class="date">.tranTime($dt).</div>
</div>
<div class="clear"></div>
</div>;
}
将以上两个函数都放入function.php中,准备随时被调用 。
require_once(connect.php); //数据库连接文件
require_once(function.php); //函数调用文件
$txt=stripslashes($_POST[saytxt]); //获取提交的数据
$txt=mysql_real_escape_string(strip_tags($txt),$link); //过滤HTML标签,并转义特殊字符
if(mb_strlen($txt)<1 || mb_strlen($txt)>140)
die("0"); //判断输入字符数是否符合要求
$time=time(); //获取当前时间
$userid=rand(0,4);
//插入数据到数据表中
$query=mysql_query("insert into say(userid,content,addtime)values($userid,$txt,$time)");
if(mysql_affected_rows($link)!=1)
die("0");
echo formatSay($txt,$time,$userid); //调用函数输出结果
注意,本例中为了演示,将用户ID(userid)进行随机处理,实际的应用是获取当前用户的ID 。另外数据库连接文件,大家可以自己写一个,在我提供的下载的DEMO里也有这个文件 。
<?php
define(INCLUDE_CHECK,1);
require_once(connect.php);
require_once(function.php);
$query=mysql_query("select * from say order by id desc limit 0,10");
while ($row=mysql_fetch_array($query)) {
$sayList.=formatSay($row[content],$row[addtime],$row[userid]);
}
?>
<form id="myform" action="say.php" method="post">
<h3><span class="counter">140</span>说说你正在做什么...</h3>
<textarea name="saytxt" id="saytxt" class="input" tabindex="1" rows="2" cols="40"></textarea>
<p>
<input type="submit" class="sub_btn" value="提 交" disabled="disabled" />
<span id="msg"></span>
</p>
</form>
<div class="clear"></div>
<div id="saywrap">
<?php echo $sayList;?>
</div>
以上就是本文的全部内容,希望对大家的学习有所帮助 。 |