Podręcznik użytkownika CodeIgniter wersja 2.2.1


Klasa User Agent

Klasa User Agent dostarcza funkcje, które pomagają dotrzeć do informacji o przeglądarce, urządzeniu mobilnym lub robocie odwiedzającym Twoją stronę. Dodatkowo możesz uzyskać informacje z nagłówków, takie jak referrer lub wspierane kodowanie.

Inicjalizowanie klasy

Tak jak większość innych klas w CodeIgniterze, klasa User Agent jest inicjalizowana w Twoim kontrolerze poprzez funkcję $this->load->library function:

$this->load->library('user_agent');

Po załadowaniu, obiekt klasy User Agent będzie dostępny poprzez wywołanie: $this->agent

Definicje klientów użytkownika

Definicje klientów użytkownika znajdują się w pliku konfiguracyjnym: application/config/user_agents.php. Możesz dodać wiele tablic jeśli jest taka potrzeba.

Przykład

Kiedy klasa User Agent jest inicjalizowana, będzie starała się ustalić jaki klient użytkownika przegląda twoją stronę, czy jest to przeglądarka, urządzenie mobilne, czy robot. Jeśli będzie to możliwe, to zgromadzi również informacje o platformie.

$this->load->library('user_agent');

if ($this->agent->is_browser())
{
    $agent = $this->agent->browser().' '.$this->agent->version();
}
elseif ($this->agent->is_robot())
{
    $agent = $this->agent->robot();
}
elseif ($this->agent->is_mobile())
{
    $agent = $this->agent->mobile();
}
else
{
    $agent = 'Unidentified User Agent';
}

echo $agent;

echo $this->agent->platform(); // Informacje o platformie (Windows, Linux, Mac, itp.)

Spis funkcji

$this->agent->is_browser()

Zwraca TRUE/FALSE (boolean) jeśli klient użytkownika jest rozpoznawaną przeglądarką internetową.

if ($this->agent->is_browser('Safari'))
{
    echo 'You are using Safari.';
}
else if ($this->agent->is_browser())
{
    echo 'You are using a browser.';
}

Uwaga:  Ciąg "Safari" w tym przykładzie, jest kluczem tablicy na liście definiującej przeglądarki. Jeśli będziesz chciał dodać nową przeglądarkę lub zmienić dany ciąg, możesz znaleźć tę listę w application/config/user_agents.php.

$this->agent->is_mobile()

Zwraca TRUE/FALSE (boolean) jeśli klient użytkownika jest rozpoznawanym urządzeniem mobilnym.

if ($this->agent->is_mobile('iphone'))
{
    $this->load->view('iphone/home');
}
else if ($this->agent->is_mobile())
{
    $this->load->view('mobile/home');
}
else
{
    $this->load->view('web/home');
}

$this->agent->is_robot()

Zwraca TRUE/FALSE (boolean) jeśli klient użytkownika jest rozpoznawanym robotem.

Uwaga:  Biblioteka User Agent zawiera tylko najbardziej powszechne definicje robotów. Nie jest to kompletna lista robotów. Są ich setki, więc szukanie każdego z nich, nie byłoby zbyt efektywne. Jeśli stwierdzisz, że brakuje robotów, które często odwiedzają Twoją stronę, możesz je dodać do pliku application/config/user_agents.php.

$this->agent->is_referral()

Zwraca TRUE/FALSE (boolean) jeśli klient użytkownika ma ustawiony nagłówek referral na inną stronę.

$this->agent->browser()

Zwraca ciąg zawierający nazwę przeglądarki internetowej, która odwiedza Twoją stronę.

$this->agent->version()

Zwraca ciąg zawierający wersję przeglądarki internetowej, która odwiedza Twoją stronę.

$this->agent->mobile()

Zwraca ciąg zawierający nazwę urządzenia mobilnego, które odwiedza Twoją stronę.

$this->agent->robot()

Zwraca ciąg zawierający nazwę robota, który odwiedza Twoją stronę.

$this->agent->platform()

Zwraca ciąg zawierający nazwę platformy, z której odwiedzana jest Twoja strona (Linux, Windows, OS X, itp.).

$this->agent->referrer()

Zwraca nazwę referrer, jeśli klient użytkownika, przyszedł z innej strony. Zazwyczaj testować to będziesz w ten sposob:

if ($this->agent->is_referral())
{
    echo $this->agent->referrer();
}

$this->agent->agent_string()

Zwraca ciąg zawierający pełną nazwę klienta użytkownika. Zazwyczaj może to wyglądać podobnie do tego:

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2

$this->agent->accept_lang()

Pozwala na określenie, czy klient użytkownika akceptuje dany język. Przykład:

if ($this->agent->accept_lang('en'))
{
    echo 'You accept English!';
}

Uwaga: Na tej funkcji nie można zazwyczaj bardzo polegać, ponieważ niektóre przeglądarki nie dostarczają informacji o języku, a te które to robią, nie zawsze robią to zgodnie z prawdą.

$this->agent->accept_charset()

Pozwala na określenie, czy dany klient użytkownika akceptuje określone kodowanie znaków. Przykład:

if ($this->agent->accept_charset('utf-8'))
{
    echo 'You browser supports UTF-8!';
}

Uwaga: Na tej funkcji nie można zazwyczaj bardzo polegać, ponieważ niektóre przeglądarki nie dostarczają informacji o obsługiwanym kodowaniu znaków, a te które to robią, nie zawsze robią to zgodnie z prawdą.