以下功能DMMRankings()
用於顯示排名靠前的25位用戶。但是,我想編輯這個函數來讀取一個文本文件(它會有很多行,比如20.000),所以它需要總是讀取最後10行,因爲它會是一團糟。例如,從文本文件的兩行:如何讀取文件的最後10行並獲取所需的數據?
1,42,16, 201,stackoverflow_user, 1, 6762160, 39799, 9817242, 6762160, 39884, 10010545,stackoverflow_usersecond, 2, 1351147, 1165, 483259, 1351147, 1115, 241630, 0
1,46,27, 201,[stackoverflow_user | stackoverflow_userother], 1, 4078465, 286991, 1594830, 4078465, 287036, 1643156,stackoverflow_userthird, 2, 1357147, 1115, 241630, 1357147, 1065, 120815, 0
線的結構主要是similiar但唯一不同的是,第5列可以包含多個用戶名,所以我們必須始終閱讀第一它。它是這樣的:腳本應該讀第4,5列(正如你可以看到它應該讀第一個名字,因爲它可以額外擴展,參見:第一行和第二行)和第13列。所以,總共4,5 ,每行最後10行13列。 所以我的問題是如何使腳本從這個特定的文本文件中讀取最新的10行和特定列?
必須編輯的腳本:
function DMMRankings()
{
$db = $this->database[GDB];
$num_rows = $db->doQuery('SELECT TOP 25 UserName, Rank, Nation FROM USER WHERE Authority IN(1, 2) ORDER BY Rank DESC');
if ($num_rows == -1)
{
$db->getError();
return;
}
$n = 1;
$content = '';
while ($row = $db->doRead())
{
$data = array('rank-pos' => $n++, 'rank-name' => $row['UserName'], 'rank-nation' => $row['Nation'], 'rank-user' => number_format(intval($row['Rank'])));
$content .= Template::Load('rankinguserdmm-' . ($n % 2 == 1 ? 2 : 1), $data);
}
$this->content = Template::Load('user_rankingsdmm', array('rankings' => $content));
}
您的粘貼代碼與閱讀文本文件無關......請發佈**相關**的代碼以提問您的問題。 – 2014-10-17 12:03:42