Home > php教程 > php手册 > PHP实例教程(4):构建基于PHP的微博客服务

PHP实例教程(4):构建基于PHP的微博客服务

WBOY
Release: 2016-06-21 08:56:41
Original
945 people have browsed it

添加其他用户?贴子

要将其他用户的贴子添加到一个用户的时间表(timeline)上,只需重用之前编写的一些代码。例如,现在已经知道如何获得当前用户正在追随的用户的列表。也知道如何获得某个用户发出的所有贴子。因此只需稍微修改后一个函数,使之能够接受一个用户列表,而不是单个用户。

现在只需在 index.php 文件中将第一个函数上移一点,以便马上使用它,然后使用通过该函数获得的用户 ID 列表,从他们的时间表中获取一定数量的贴子 — 这里不需要所有的贴子,只需 5 个左右。记住,要按日期倒序(最近的在上)排列那些用户的贴子。

首先,为 <font face="NSimsun">show_posts()</font> 函数增加一个 limit 参数,将它的值默认为 0。如果 limit 大于 0,则将一个限制值添加到用于检索贴子的 SQL 语句中。另外要做的是将 <font face="NSimsun">$userid</font> 参数放入到一个数组中,并将该数组解析到一个以逗号分隔的字段中,最后将该字段传递给 SQL 语句。这需要做一点额外工作,但是可以获得丰厚的回报,因为如您所见,所有贴子都将以倒序显示。


清单 18. 更新 <font face="NSimsun">show_posts()</font>,以接受一个用户数组
				<br/>function show_posts($userid,$limit=0){<br/>	$posts = array();<br/><br/>	$user_string = implode(",", $userid);<br/>	$extra =  " and id in ($user_string)";<br/><br/>	if ($limit > 0){<br/>		$extra = "limit $limit";<br/>	}else{<br/>		$extra = "";	<br/>	}<br/><br/>	$sql = "select user_id,body, stamp from posts <br/>		where user_id in ($user_string) <br/>		order by stamp desc $extra";<br/>	echo $sql;<br/>	$result = mysql_query($sql);<br/><br/>	while($data = mysql_fetch_object($result)){<br/>		$posts[] = array( 	"stamp" => $data->stamp, <br/>							"userid" => $data->user_id, <br/>							"body" => $data->body<br/>					);<br/>	}<br/>	return $posts;<br/><br/>}<br/>
Copy after login
Copy after login

现在回到 index.php 文件,将不止一个用户 ID 传递给 <font face="NSimsun">show_posts()</font>,如下面的清单所示。这其实很简单,因为已经收集到了这些用户。现在只需使用 <font face="NSimsun">array_keys()</font> 取出键值,将会话变量加到数组中。这样,传递的数组最少包含一个值(已登录的当前用户的 ID),最多则包含当前用户 ID 和该用户追随的每个用户的 ID。


清单 19. 将一个用户数组传递给 <font face="NSimsun">show_posts()</font> 函数
				
$users = show_users(

添加其他用户?贴子

要将其他用户的贴子添加到一个用户的时间表(timeline)上,只需重用之前编写的一些代码。例如,现在已经知道如何获得当前用户正在追随的用户的列表。也知道如何获得某个用户发出的所有贴子。因此只需稍微修改后一个函数,使之能够接受一个用户列表,而不是单个用户。

现在只需在 index.php 文件中将第一个函数上移一点,以便马上使用它,然后使用通过该函数获得的用户 ID 列表,从他们的时间表中获取一定数量的贴子 — 这里不需要所有的贴子,只需 5 个左右。记住,要按日期倒序(最近的在上)排列那些用户的贴子。

首先,为 <font face="NSimsun">show_posts()</font> 函数增加一个 limit 参数,将它的值默认为 0。如果 limit 大于 0,则将一个限制值添加到用于检索贴子的 SQL 语句中。另外要做的是将 <font face="NSimsun">$userid</font> 参数放入到一个数组中,并将该数组解析到一个以逗号分隔的字段中,最后将该字段传递给 SQL 语句。这需要做一点额外工作,但是可以获得丰厚的回报,因为如您所见,所有贴子都将以倒序显示。


清单 18. 更新 <font face="NSimsun">show_posts()</font>,以接受一个用户数组
				<br/>function show_posts($userid,$limit=0){<br/>	$posts = array();<br/><br/>	$user_string = implode(",", $userid);<br/>	$extra =  " and id in ($user_string)";<br/><br/>	if ($limit > 0){<br/>		$extra = "limit $limit";<br/>	}else{<br/>		$extra = "";	<br/>	}<br/><br/>	$sql = "select user_id,body, stamp from posts <br/>		where user_id in ($user_string) <br/>		order by stamp desc $extra";<br/>	echo $sql;<br/>	$result = mysql_query($sql);<br/><br/>	while($data = mysql_fetch_object($result)){<br/>		$posts[] = array( 	"stamp" => $data->stamp, <br/>							"userid" => $data->user_id, <br/>							"body" => $data->body<br/>					);<br/>	}<br/>	return $posts;<br/><br/>}<br/>
Copy after login
Copy after login

现在回到 index.php 文件,将不止一个用户 ID 传递给 <font face="NSimsun">show_posts()</font>,如下面的清单所示。这其实很简单,因为已经收集到了这些用户。现在只需使用 <font face="NSimsun">array_keys()</font> 取出键值,将会话变量加到数组中。这样,传递的数组最少包含一个值(已登录的当前用户的 ID),最多则包含当前用户 ID 和该用户追随的每个用户的 ID。


清单 19. 将一个用户数组传递给 <font face="NSimsun">show_posts()</font> 函数
___FCKpd___1
Copy after login
Copy after login







结束语

在本文中,您学习了如何构建一个简单的基于 PHP 的微博客服务,该服务类似于 Twitter 和 Facebook 状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制。

SESSION["userid"]);
if (count($users)){
$myusers = array_keys($users);
}else{
$myusers = array();
}
$myusers[] =

添加其他用户?贴子

要将其他用户的贴子添加到一个用户的时间表(timeline)上,只需重用之前编写的一些代码。例如,现在已经知道如何获得当前用户正在追随的用户的列表。也知道如何获得某个用户发出的所有贴子。因此只需稍微修改后一个函数,使之能够接受一个用户列表,而不是单个用户。

现在只需在 index.php 文件中将第一个函数上移一点,以便马上使用它,然后使用通过该函数获得的用户 ID 列表,从他们的时间表中获取一定数量的贴子 — 这里不需要所有的贴子,只需 5 个左右。记住,要按日期倒序(最近的在上)排列那些用户的贴子。

首先,为 <font face="NSimsun">show_posts()</font> 函数增加一个 limit 参数,将它的值默认为 0。如果 limit 大于 0,则将一个限制值添加到用于检索贴子的 SQL 语句中。另外要做的是将 <font face="NSimsun">$userid</font> 参数放入到一个数组中,并将该数组解析到一个以逗号分隔的字段中,最后将该字段传递给 SQL 语句。这需要做一点额外工作,但是可以获得丰厚的回报,因为如您所见,所有贴子都将以倒序显示。


清单 18. 更新 <font face="NSimsun">show_posts()</font>,以接受一个用户数组
				<br/>function show_posts($userid,$limit=0){<br/>	$posts = array();<br/><br/>	$user_string = implode(",", $userid);<br/>	$extra =  " and id in ($user_string)";<br/><br/>	if ($limit > 0){<br/>		$extra = "limit $limit";<br/>	}else{<br/>		$extra = "";	<br/>	}<br/><br/>	$sql = "select user_id,body, stamp from posts <br/>		where user_id in ($user_string) <br/>		order by stamp desc $extra";<br/>	echo $sql;<br/>	$result = mysql_query($sql);<br/><br/>	while($data = mysql_fetch_object($result)){<br/>		$posts[] = array( 	"stamp" => $data->stamp, <br/>							"userid" => $data->user_id, <br/>							"body" => $data->body<br/>					);<br/>	}<br/>	return $posts;<br/><br/>}<br/>
Copy after login
Copy after login

现在回到 index.php 文件,将不止一个用户 ID 传递给 <font face="NSimsun">show_posts()</font>,如下面的清单所示。这其实很简单,因为已经收集到了这些用户。现在只需使用 <font face="NSimsun">array_keys()</font> 取出键值,将会话变量加到数组中。这样,传递的数组最少包含一个值(已登录的当前用户的 ID),最多则包含当前用户 ID 和该用户追随的每个用户的 ID。


清单 19. 将一个用户数组传递给 <font face="NSimsun">show_posts()</font> 函数
___FCKpd___1
Copy after login
Copy after login







结束语

在本文中,您学习了如何构建一个简单的基于 PHP 的微博客服务,该服务类似于 Twitter 和 Facebook 状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制。

SESSION["userid"];

$posts = show_posts($myusers,5);







结束语

在本文中,您学习了如何构建一个简单的基于 PHP 的微博客服务,该服务类似于 Twitter 和 Facebook 状态更新工具。如果一切顺利的话,您就可以得到现在这样的成果,并将它添加到您的应用程序中,并根据需要加以定制。



Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template