構建基於PHP的微部落格服務
學習猶如逆水行舟,不進則退。下面是小編整理的構建基於PHP的微部落格服務,希望對大家有用,更多訊息請關注應屆畢業生網。 新增其他使用者新增貼子 要將其他使用者的貼子新增到一個使用者的時間表(timeline)上,只需重用之前編寫的一些程式碼。例如,現在已經知道如何獲得當前使用者正在追隨的使用者的列表。也知道如何獲得某個使用者發出的所有貼子。因此只需稍微修改後一個函式,使之能夠接受一個使用者列表,而不是單個使用者。 現在只需在 檔案中將第一個函式上移一點,以便馬上使用它,然後使用通過該函式獲得的使用者 ID 列表,從他們的時間表中獲取一定數量的貼子 — 這裡不需要所有的貼子,只需 5 個左右。記住,要按日期倒序(最近的在上)排列那些使用者的貼子。 首先,為 show_posts() 函式增加一個 limit 引數,將它的值預設為 0。如果 limit 大於 0,則將一個限制值新增到用於檢索貼子的 SQL 語句中。另外要做的是將 $userid 引數放入到一個數組中,並將該陣列解析到一個以逗號分隔的欄位中,最後將該欄位傳遞給 SQL 語句。這需要做一點額外工作,但是可以獲得豐厚的回報,因為如您所見,所有貼子都將以倒序顯示。 清單 18. 更新 show_posts(),以接受一個使用者陣列 ? 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; } 現在回到 檔案,將不止一個使用者 ID 傳遞給 show_posts(),如下面的`清單所示。這其實很簡單,因為已經收集到了這些使用者。現在只需使用 array_keys() 取出鍵值,將會話變數加到陣列中。這樣,傳遞的陣列最少包含一個值(已登入的當前使用者的 ID),最多則包含當前使用者 ID 和該使用者追隨的每個使用者的 ID。 清單 19. 將一個使用者陣列傳遞給 show_posts() 函式 $users = show_users(新增其他使用者?貼子 要將其他使用者的貼子新增到一個使用者的時間表(timeline)上,只需重用之前編寫的一些程式碼。例如,現在已經知道如何獲得當前使用者正在追隨的使用者的列表。也知道如何獲得某個使用者發出的所有貼子。因此只需稍微修改後一個函式,使之能夠接受一個使用者列表,而不是單個使用者。 現在只需在 檔案中將第一個函式上移一點,以便馬上使用它,然後使用通過該函式獲得的使用者 ID 列表,從他們的時間表中獲取一定數量的貼子 — 這裡不需要所有的貼子,只需 5 個左右。記住,要按日期倒序(最近的在上)排列那些使用者的貼子。 首先,為 show_posts() 函式增加一個 limit 引數,將它的值預設為 0。如果 limit 大於 0,則將一個限制值新增到用於檢索貼子的 SQL 語句中。另外要做的是將 $userid 引數放入到一個數組中,並將該陣列解析到一個以逗號分隔的欄位中,最後將該欄位傳遞給 SQL 語句。這需要做一點額外工作,但是可以獲得豐厚的回報,因為如您所見,所有貼子都將以倒序顯示。 結束語 在本文中,您學習瞭如何構建一個簡單的基於 PHP 的微部落格服務,該服務類似於 Twitter 和 Facebook 狀態更新工具。如果一切順利的話,您就可以得到現在這樣的成果,並將它新增到您的應用程式中,並根據需要加以定製。