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

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

WBOY
Freigeben: 2016-06-21 08:56:41
Original
945 Leute haben es durchsucht

添加其他用户?贴子

要将其他用户的贴子添加到一个用户的时间表(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/>
Nach dem Login kopieren
Nach dem Login kopieren

现在回到 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/>
Nach dem Login kopieren
Nach dem Login kopieren

现在回到 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
Nach dem Login kopieren
Nach dem Login kopieren







结束语

在本文中,您学习了如何构建一个简单的基于 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/>
Nach dem Login kopieren
Nach dem Login kopieren

现在回到 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
Nach dem Login kopieren
Nach dem Login kopieren







结束语

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

SESSION["userid"];

$posts = show_posts($myusers,5);







结束语

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



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