Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Sortowanie według daty.
Forum PHP.pl > Forum > Przedszkole
Mike122
Witam mam log strony w pliku .txt i czy można zrobić jakoś sortowanie według danych, np według $czas_log
  1. <?php
  2. print "<span class="admintitle">Log'i witryny</span><br>";
  3. print "<table border="1">";
  4. print "<tr><td class="log1"><b>Typ błędy</td><td class="log1"><b>ID sesji</b></td>";
  5. print "<td class="log1"><b>Przeglądarka</b></td><td class="log1"><b>IP</b></td>
  6. <td class="log1"><b>Data</b></td></tr>";
  7. $wskaz = @fopen("log.txt", "r");
  8. while($wiersz = @fgets($wskaz, 1024))
  9. {
  10. list($errortype, $sesjielog, $agent, $ip, $czas_log) = explode(":|:", $wiersz);
  11. print "<tr>";
  12. print "<td class="log">$errortype</td>";
  13. print "<td class="log">$sesjielog</td>"; 
  14. print "<td class="log">$agent</td>";
  15. print "<td class="log">$ip</td>";
  16. print "<td class="log">$czas_log</td>";
  17. print "</tr>";
  18. }
  19. fclose($wskaz);
  20. ?>

Skrypt zapisujący dane do pliku .txt wygląda następująco:
  1. <?php
  2. $czas_log = date("d.n.Y/H:i:s");
  3. $sesjielog = session_id();
  4. $plik = 'log.txt';
  5. $wskaz = @fopen($plik, "a");
  6. fwrite($wskaz,"$errortype:|:$sesjielog:|:$_SERVER[HTTP_USER_AGENT]:|:$_SERVER[REMOTE_ADDR]
    :|:$czas_logn"
    );
  7. fclose($wskaz);
  8. ?>
Lonas
Myśle że to rozwiąże Twój problem :

Cytat
Niech zawartość pliku z danymi ma postać:
Anna,19
Paweł,13
Karol,20

gdzie pierwsza kolumna oznacza imię, druga natomiast wiek. Po wczytaniu takiego pliku napewno chcielibyśmy mieć kontrolę nad sposobem wyświetlania danych, np. uporządkowania wg. wybranego kryterium. Użyjemy w tym celu standardowej funkcji sortującej, której deklaracja przedstawia się następująco:
void usort ( array tablica, callback funkcja_por)

Cały kod może mieć postać:
<?php

/* nr. kolumny wg. której nastąpi posortowanie
elementów (rosnąco) */
define('COLUMN', 0);

// funkcja porównująca
function cmp ($a, $b) {

return strcmp ($a[COLUMN], $b[COLUMN]);
}

// wczytanie pliku
if ($fp = @fopen ('dane.csv', 'r')) {
while (($line = fgetcsv ($fp, 1024)) !== FALSE)
$lines[] = $line;
fclose ($fp);
}

// posortowanie tablicy
usort ($lines, "cmp");

// wyświetlenie posortowanej tablicy
echo "<pre>";
foreach ($lines as $line) {
foreach ($line as $column)
echo "|\t" . $column . "\t|";
echo "\n";
}
echo "</pre>";

?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.