webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> php + mysql

Graficzna identyfikacja systemu i przeglądarki w PHP

autor: Piotr 'Redelek' Redel, ostatnia modyfikacja: 2008-01-17

szukaj: identyfikacja systemu identyfikacja systemu identyfikacja przeglądarki identyfikacja przeglądarki

Witam wszystkich czytelników webmade.org. Dziś podzielę się dosyć prostym skryptem, ale za to bardzo efektownym. Można będzie go stosować na stronie głównej lub na forum dyskusyjnym. Przedstawię Wam jak w łatwy i przyjemny sposób zrobić taki skrypt. Oczywiście, jest on do modernizacji i ulepszenia. Moim celem jest jedynie wytłumaczenie mechanizmu jego działania.

Zadaniem skryptu jest pobranie od internauty, który odwiedza naszą stronę lub forum, informacji na temat przeglądarki i systemu operacyjnego, z których korzysta. Jak zwykle na początku każdego skryptu zadeklarujemy sobie kilka zmiennych, których będziemy później używać.

 <?php
$dir_p='img/info/przegl';
$dir_s='img/info/sys';
$system=$przegladarka=$_SERVER[HTTP_USER_AGENT];
?>

Dwie pierwsze zmienne są bardzo proste i nie będę się nad nimi rozwodził, a zajmiemy się zmienną trzecią. Pobiera ona od internauty następujące informacje:

Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11

Jak widać w tym przykładzie każdy komputer internauty, łączący się do naszej witryny www, musi wysłać takie informacje. My te dane podzielimy i wyłuskamy z nich to, co nas interesuje. Zrobimy to za pomocą funkcji strister. Zadaniem tej opcji jest znalezienie w ciągu danego słowa lub literki i wycięcie jej.

Przykład:

<?php
$imie_nazwisko = 'Piotr Redel';
echo stristr($imie_nazwisko, 'Piotr');
?> 

Jak myślicie co zwróci? Tak, dokładnie! Zwróci z całego stringu tylko Piotr. Prawda, że bardzo proste? Oki, jeśli już to wiemy, to napiszmy kilka linijek naszego skryptu.

if(stristr($przegladarka, "firefox")){
echo "<center><img src='$dir_p/firefox.png'></center>";
}
if(stristr($system, "Windows NT 5.1")){
echo "<center><img src='$dir_s/windows_xp.png'>";
}

Jeśli znajdzie słowo firefox lub windows NT 5.1 wyświetli odpowiedni obrazek. Prawda, że nie taki diabeł straszny? No dobrze, to już mogę pokazać jak wygląda cały skrypt.

<?php
$dir_p='img/info/przegl';
$dir_s='img/info/sys';
$system=$przegladarka=$_SERVER[HTTP_USER_AGENT];
echo "<div style='text-align: center;'>";
echo "<p>Połączony\(na) z :</p>"."</div>";
echo "<div style='text-align: center;'>";
if(stristr($przegladarka, "firefox")){
echo "<img src='$dir_p/firefox.png' alt='firefox'>";
}
elseif(stristr($przegladarka, "Opera")){
echo "<img src='$dir_p/opera.png' alt='Opera'>";
}
elseif(stristr($przegladarka, "MSIE")){
echo "<img src='$dir_p/ie.png' alt='MSIE'>";
}
elseif(stristr($przegladarka, "Epiphany")){
echo "<img src='$dir_p/epiphany.png' alt='Epiphany'>";
}
elseif(stristr($przegladarka, "Firebird")){
echo "<img src='$dir_p/firebird.png' alt='Firebird'>";
}
elseif(stristr($przegladarka, "Galeon")){
echo "<img src='$dir_p/galeon.png' alt='Galeon'>";
}
echo "</div>";
echo "<div style='text-align: center;'>";
//-----Systemy------
if(stristr($system, "Windows")){
echo "<img src='$dir_s/windows.png' alt='Windows'>";
}
elseif(stristr($system, "Aurox")){
echo "<img src='$dir_s/aurox.png' alt='Aurox'>";
}
elseif(stristr($system, "FreeBSD")){
echo "<img src='$dir_s/freebsd.png' alt='FreeBSD'>";
}
elseif(stristr($system, "Knoppix")){
echo "<img src='$dir_s/knoppix.png' alt='Knoppix'>";
}
elseif(stristr($system, "Mandriva")){
echo "<img src='$dir_s/mandriva.png' alt='Mandriva'>";
}
elseif(stristr($system, "PLD")){
echo "<img src='$dir_s/pld.png' alt='PLD'>";
}
elseif(stristr($system, "Ubuntu")){
echo "<img src='$dir_s/ubuntu.png' alt='Ubuntu'>";
}
echo "</div>";
?>

Oczywiście to dopiero czubek góry lodowej. Systemów i przeglądarek jest naprawdę dużo. Na samym dolę umieszczę kilka linków do stron, na których będzie można dowiedzieć się więcej na ten temat. Być może ktoś z Was chciałby zadać tu pytanie: „Jak to zrobić w pętli?” lub „Dlaczego nie w pętli?”. Może to moje lenistwo, może to moja niewiedza, może chęć zmuszenia Was do rozbudowy skryptu zamiast pisania kilkuset linijek kodu... :) Tego Wam nie powiem. I tym miłym akcentem kończę swoje skromne wywody. Zapraszam do czytania, komentowania i odwiedzania serwisu webmade.org.

Źródła:

Piotr 'Redelek' Redel

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org