Следующая функция 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
Структура линий в основном похожа, но разница лишь в том, что пятый столбец может содержать больше имен пользователей, поэтому мы должны читать всегда первые из него. Например: сценарий должен читать столбцы 4, 5 (как вы можете видеть, он должен прочитать самое первое имя, потому что он может быть расширен дополнительным, см.: 1-я и 2-я строки) и столбец 13. Итак, всего 4,5 , 13 столбцов от каждой последней 10 строк. Итак, мой вопрос заключается в том, как сделать скрипт для чтения последних 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));
}
Ваш вставленный код не имеет ничего общего с чтением текстового файла ... пожалуйста, отправьте код, который ** относится ** к вопросу, который вы задаете. –