- 相關(guān)推薦
構(gòu)建基于PHP的微博客服務(wù)
學(xué)習(xí)猶如逆水行舟,不進(jìn)則退。下面是小編整理的構(gòu)建基于PHP的微博客服務(wù),希望對大家有用,更多消息請關(guān)注應(yīng)屆畢業(yè)生網(wǎng)。
添加其他用戶添加貼子
要將其他用戶的貼子添加到一個用戶的時間表(timeline)上,只需重用之前編寫的一些代碼。例如,現(xiàn)在已經(jīng)知道如何獲得當(dāng)前用戶正在追隨的用戶的列表。也知道如何獲得某個用戶發(fā)出的所有貼子。因此只需稍微修改后一個函數(shù),使之能夠接受一個用戶列表,而不是單個用戶。
現(xiàn)在只需在 index.PHP 文件中將第一個函數(shù)上移一點(diǎn),以便馬上使用它,然后使用通過該函數(shù)獲得的用戶 ID 列表,從他們的時間表中獲取一定數(shù)量的貼子 — 這里不需要所有的貼子,只需 5 個左右。記住,要按日期倒序(最近的在上)排列那些用戶的貼子。
首先,為 show_posts() 函數(shù)增加一個 limit 參數(shù),將它的值默認(rèn)為 0。如果 limit 大于 0,則將一個限制值添加到用于檢索貼子的 SQL 語句中。另外要做的是將 $userid 參數(shù)放入到一個數(shù)組中,并將該數(shù)組解析到一個以逗號分隔的字段中,最后將該字段傳遞給 SQL 語句。這需要做一點(diǎn)額外工作,但是可以獲得豐厚的回報(bào),因?yàn)槿缒,所有貼子都將以倒序顯示。
清單 18. 更新 show_posts(),以接受一個用戶數(shù)組
?
function show_posts($userid,$limit=0){
$posts = array();
$user_string = implode(',', $userid);
$extra = " and id in ($user_string)";
if ($limit > 0){
$extra = "limit $limit";
}else{
$extra = '';
}
$sql = "select user_id,body, stamp from posts
where user_id in ($user_string)
order by stamp desc $extra";
echo $sql;
$result = mysql_query($sql);
while($data = mysql_fetch_object($result)){
$posts[] = array( 'stamp' => $data->stamp,
'userid' => $data->user_id,
'body' => $data->body
);
}
return $posts;
}
現(xiàn)在回到 index.php 文件,將不止一個用戶 ID 傳遞給 show_posts(),如下面的清單所示。這其實(shí)很簡單,因?yàn)橐呀?jīng)收集到了這些用戶。現(xiàn)在只需使用 array_keys() 取出鍵值,將會話變量加到數(shù)組中。這樣,傳遞的數(shù)組最少包含一個值(已登錄的當(dāng)前用戶的 ID),最多則包含當(dāng)前用戶 ID 和該用戶追隨的每個用戶的 ID。
清單 19. 將一個用戶數(shù)組傳遞給 show_posts() 函數(shù)
$users = show_users(添加其他用戶?貼子
要將其他用戶的貼子添加到一個用戶的時間表(timeline)上,只需重用之前編寫的一些代碼。例如,現(xiàn)在已經(jīng)知道如何獲得當(dāng)前用戶正在追隨的用戶的列表。也知道如何獲得某個用戶發(fā)出的所有貼子。因此只需稍微修改后一個函數(shù),使之能夠接受一個用戶列表,而不是單個用戶。
現(xiàn)在只需在 index.php 文件中將第一個函數(shù)上移一點(diǎn),以便馬上使用它,然后使用通過該函數(shù)獲得的用戶 ID 列表,從他們的時間表中獲取一定數(shù)量的貼子 — 這里不需要所有的貼子,只需 5 個左右。記住,要按日期倒序(最近的在上)排列那些用戶的貼子。
首先,為 show_posts() 函數(shù)增加一個 limit 參數(shù),將它的值默認(rèn)為 0。如果 limit 大于 0,則將一個限制值添加到用于檢索貼子的 SQL 語句中。另外要做的是將 $userid 參數(shù)放入到一個數(shù)組中,并將該數(shù)組解析到一個以逗號分隔的字段中,最后將該字段傳遞給 SQL 語句。這需要做一點(diǎn)額外工作,但是可以獲得豐厚的回報(bào),因?yàn)槿缒姡匈N子都將以倒序顯示。
結(jié)束語
在本文中,您學(xué)習(xí)了如何構(gòu)建一個簡單的基于 PHP 的微博客服務(wù),該服務(wù)類似于 Twitter 和 Facebook 狀態(tài)更新工具。如果一切順利的話,您就可以得到現(xiàn)在這樣的成果,并將它添加到您的應(yīng)用程序中,并根據(jù)需要加以定制。
【構(gòu)建基于PHP的微博客服務(wù)】相關(guān)文章:
PHP構(gòu)建監(jiān)視服務(wù)的方法06-19
基于php下載文件的詳解10-26
基于PHPQuery的PHP通用采集類10-17
基于PHP中的常用函數(shù)精粹07-19