Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Sortowanie według daty.
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Mike122 23.08.2006, 22:12:44


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
Lonas
post
Post #2





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


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>";

?>


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:32