.txt файл удаляет строки, но сохраняет первые 10?

Как мне удалить строки в файле .txt? Но сохранить первые десять строк?

Вот мой код до сих пор:

   <?php

$hiScore = $_POST['hiScore'] ? $_POST['hiScore'] : 'not set';

$theInput = $_POST['theInput'] ? $_POST['theInput'] : 'not set';

$file = fopen('LeaderBoard.txt','a+');
fwrite($file, ' '.$hiScore.' - Score                                                      Name: '.$theInput.'      '.PHP_EOL);
fclose($file);

$lines = file("LeaderBoard.txt");
natsort($lines);
$lines=array_reverse($lines);
file_put_contents("LeaderBoardScores.txt", implode("\n  \n \n  \n  \n  \n \n  \n", $lines));

$handle = fopen("LeaderBoardScores.txt");
$output = '';
$i = 0;
while (($line = fgets($handle)) !== false) {
$output .= $line . "\n";
if ($i++ >= 10)
break;
}
fclose($handle);
file_put_contents($output, "Leader.txt");

?>

Я не уверен, как, если staments работают в PHP, но, возможно, проверьте файл, и если строки = выше 10, ничего не публиковать в файл?

Табло, которое видит человек: LeaderBoardScores.txt должен видеть только 10 лучших

В LeaderBoard.txt данные публикуются, а затем сортируются для просмотра в LeaderBoardScores.txt.

0

Решение

Вы можете перебрать каждую строку, используя fgets() и вырваться после 10-й строки:

<?php
$handle = fopen($path_to_file);
$output = '';
$i = 0;
while (($line = fgets($handle)) !== false) {
$output .= $line . "\n";
if ($i++ >= 10)
break;
}
fclose($handle);
file_put_contents($output, $path_to_file);

http://php.net/manual/en/function.fgets.php

В этом случае, while (($line = fgets($handle)) !== false) циклически перебирает строки в существующем файле. $output собирает содержимое строк. $i считает, сколько строк мы добавили $output пока что мы можем остановиться (break) в нужное время.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]