PHP - analiza dzienników serwera

DZIAŁANIE: Efekt działania skrypty na localhoście u mnie :
 

Kod:

Ewentualne Objaśnienia:

PHP pozwala nam na analizę tzw. plików dziennika na naszym serwerze. W przypadku używania na lokalnym komputerze krasnala plik ten znajdziemy w katalogu logs - a nazywa się on access.log. Dzięki temu możemy wyciągnąć kilka ciekawych danych - na przykład najczęściej odwiedzane strony. W dziennikach serwera jest rejestrowana masa informacji dotyczących naszej strony. To co notuje dziennik jest zależne od konfiguracji serwera - i tak na przykład jeżeli używamy krasnala na naszym komputerze to informacje jakie pamięta on o odwiedzających są dość ubogie.

W tym przykładzie wyświetlamy na podstawie analizy dziennika serwera - 20 wyświetlanych plików. Odczytujemy plik access.log - u mnie jego ścieżka widać jaka jest - 4 katalogi "wstecz" - to oczywiście u Was może być inaczej zależnie jaką macie strukturę katalogów w folderze 'html' krasnala. Widać, że jeżeli nie uda się otworzyć pliku - realizowana jest funkcja die - czyli zakończenie dalszych działań, działanie takie samo jak funkcja exit().

Jeżeli uda się nam otworzyć plik dziennika odczytujemy jego wartość oraz dzielimy poprzez funkcję split nasz plik. Zmienną $wiersz dzielimy do tablicy $zmienne następnie z tej zmiennej dzielimy ( z jej 6 klucza ) do zmiennej $strona - usuwając to co zostało przekazane parametrem ( metodą )GET - czyli wszystko po znaku '?' w adresie. Dalej w pętli w tablicy $odwiedziny dla danego indeksu ( czyli nazwy pliku ) dodajemy kolejne odwiedziny. Zamykamy plik. Dalej używamy funkcji arsort - to funkcja, która sortuje tablicę asocjacyjną biorąc pod uwagę wartości dla każdego klucza. Sortuje ona malejąco. Jej odpowiednik, ale sortujący rosnąco to asort.

Dalej już tylko w pętli foreach wyświetlamy 20 plików najczęściej odwiedzanych - jak też widać na załączonym screenie przykładu.

Jeżeli chcemy analizować dzienniki naszego serwera - gdzieś tam ja swoim koncie w sieci - niestety nie zawsze mamy bezpośredni dostęp do plików *.log. Ale niemal każdy dostawca hostingowy oferuje pobranie sobie na swój dysk takich plików - i wtedy można na localhoście odpalić taki skrypt i poprzeglądać co się dzieje na naszym serwerze.