程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP實例教程(4):構建基於PHP的微博客服務

PHP實例教程(4):構建基於PHP的微博客服務

編輯:PHP綜合

添加其他用戶?貼子

要將其他用戶的貼子添加到一個用戶的時間表(timeline)上,只需重用之前編寫的一些代碼。例如,現在已經知道如何獲得當前用戶正在追隨的用戶的列表。也知道如何獲得某個用戶發出的所有貼子。因此只需稍微修改後一個函數,使之能夠接受一個用戶列表,而不是單個用戶。

現在只需在 index.PHP 文件中將第一個函數上移一點,以便馬上使用它,然後使用通過該函數獲得的用戶 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;

}

現在回到 index.PHP 文件,將不止一個用戶 ID 傳遞給 show_posts(),如下面的清單所示。這其實很簡單,因為已經收集到了這些用戶。現在只需使用 array_keys() 取出鍵值,將會話變量加到數組中。這樣,傳遞的數組最少包含一個值(已登錄的當前用戶的 ID),最多則包含當前用戶 ID 和該用戶追隨的每個用戶的 ID。


清單 19. 將一個用戶數組傳遞給 show_posts() 函數
				
$users = show_users(

添加其他用戶?貼子

要將其他用戶的貼子添加到一個用戶的時間表(timeline)上,只需重用之前編寫的一些代碼。例如,現在已經知道如何獲得當前用戶正在追隨的用戶的列表。也知道如何獲得某個用戶發出的所有貼子。因此只需稍微修改後一個函數,使之能夠接受一個用戶列表,而不是單個用戶。

現在只需在 index.PHP 文件中將第一個函數上移一點,以便馬上使用它,然後使用通過該函數獲得的用戶 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;

}

現在回到 index.PHP 文件,將不止一個用戶 ID 傳遞給 show_posts(),如下面的清單所示。這其實很簡單,因為已經收集到了這些用戶。現在只需使用 array_keys() 取出鍵值,將會話變量加到數組中。這樣,傳遞的數組最少包含一個值(已登錄的當前用戶的 ID),最多則包含當前用戶 ID 和該用戶追隨的每個用戶的 ID。


清單 19. 將一個用戶數組傳遞給 show_posts() 函數
___FCKpd___1







結束語

在本文中,您學習了如何構建一個簡單的基於 PHP 的微博客服務,該服務類似於 Twitter 和 Facebook 狀態更新工具。如果一切順利的話,您就可以得到現在這樣的成果,並將它添加到您的應用程序中,並根據需要加以定制。

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

添加其他用戶?貼子

要將其他用戶的貼子添加到一個用戶的時間表(timeline)上,只需重用之前編寫的一些代碼。例如,現在已經知道如何獲得當前用戶正在追隨的用戶的列表。也知道如何獲得某個用戶發出的所有貼子。因此只需稍微修改後一個函數,使之能夠接受一個用戶列表,而不是單個用戶。

現在只需在 index.PHP 文件中將第一個函數上移一點,以便馬上使用它,然後使用通過該函數獲得的用戶 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;

}

現在回到 index.PHP 文件,將不止一個用戶 ID 傳遞給 show_posts(),如下面的清單所示。這其實很簡單,因為已經收集到了這些用戶。現在只需使用 array_keys() 取出鍵值,將會話變量加到數組中。這樣,傳遞的數組最少包含一個值(已登錄的當前用戶的 ID),最多則包含當前用戶 ID 和該用戶追隨的每個用戶的 ID。


清單 19. 將一個用戶數組傳遞給 show_posts() 函數
___FCKpd___1







結束語

在本文中,您學習了如何構建一個簡單的基於 PHP 的微博客服務,該服務類似於 Twitter 和 Facebook 狀態更新工具。如果一切順利的話,您就可以得到現在這樣的成果,並將它添加到您的應用程序中,並根據需要加以定制。

SESSION['userid'];

$posts = show_posts($myusers,5);







結束語

在本文中,您學習了如何構建一個簡單的基於 PHP 的微博客服務,該服務類似於 Twitter 和 Facebook 狀態更新工具。如果一切順利的話,您就可以得到現在這樣的成果,並將它添加到您的應用程序中,並根據需要加以定制。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved