Cara Mendeteksi Mobile Browser Dengan PHP

php-codeSetelah 4 harian mencari informasi tentang cara mendeteksi mobile browser akhirnya terbuka juga rahasianya. Hari ini iseng googling jam 3 pagi kebetulan memang lagi gak bisa tidur sekalian iseng mau mencari percobaan baru. Awalnya saya penasaran bagaimana caranya mendeteksi apakah visitor kita menggunakan mobile browser atau web browser biasa. Saya coba buka m.kaskus.us dan m.detik.com ternyata mereka sudah mendeteksi kalau browser yang saya gunakan adalah web browser PC.

Memang sih bagi pengguna CMS pada umumnya seperti misalnya WordPress, PHP Nuke, PHP BB,ย  Joomla, Drupal, vBulletin dan lain lain bisa menggunakan plugin salah satunya adalah mobilepress untuk wordpress, tidak perlu ribet cukup konfigurasi. Namun bagaimana kalau kita tidak menggunakan CMS tapi memerlukan mobile web ini seperti misalnya detik.com

[to_like]

Akhirnya saya ketemu juga rahasianya ternyata dengan menggunakan sedikit trik pemrograman PHP kita bisa mendeteksi jenis browser yang melakukan request ke server kita. Berikut ini adalah kode Functionnya:

$isMobile = false;
$isBot = false;

$op = strtolower($_SERVER[‘HTTP_X_OPERAMINI_PHONE’]);
$ua = strtolower($_SERVER[‘HTTP_USER_AGENT’]);
$ac = strtolower($_SERVER[‘HTTP_ACCEPT’]);
$ip = $_SERVER[‘REMOTE_ADDR’];

$isMobile = strpos($ac, ‘application/vnd.wap.xhtml+xml’) !== false
|| $op != ”
|| strpos($ua, ‘sony’) !== false
|| strpos($ua, ‘symbian’) !== false
|| strpos($ua, ‘nokia’) !== false
|| strpos($ua, ‘samsung’) !== false
|| strpos($ua, ‘mobile’) !== false
|| strpos($ua, ‘windows ce’) !== false
|| strpos($ua, ‘epoc’) !== false
|| strpos($ua, ‘opera mini’) !== false
|| strpos($ua, ‘nitro’) !== false
|| strpos($ua, ‘j2me’) !== false
|| strpos($ua, ‘midp-‘) !== false
|| strpos($ua, ‘cldc-‘) !== false
|| strpos($ua, ‘netfront’) !== false
|| strpos($ua, ‘mot’) !== false
|| strpos($ua, ‘up.browser’) !== false
|| strpos($ua, ‘up.link’) !== false
|| strpos($ua, ‘audiovox’) !== false
|| strpos($ua, ‘blackberry’) !== false
|| strpos($ua, ‘ericsson,’) !== false
|| strpos($ua, ‘panasonic’) !== false
|| strpos($ua, ‘philips’) !== false
|| strpos($ua, ‘sanyo’) !== false
|| strpos($ua, ‘sharp’) !== false
|| strpos($ua, ‘sie-‘) !== false
|| strpos($ua, ‘portalmmm’) !== false
|| strpos($ua, ‘blazer’) !== false
|| strpos($ua, ‘avantgo’) !== false
|| strpos($ua, ‘danger’) !== false
|| strpos($ua, ‘palm’) !== false
|| strpos($ua, ‘series60’) !== false
|| strpos($ua, ‘palmsource’) !== false
|| strpos($ua, ‘pocketpc’) !== false
|| strpos($ua, ‘smartphone’) !== false
|| strpos($ua, ‘rover’) !== false
|| strpos($ua, ‘ipaq’) !== false
|| strpos($ua, ‘au-mic,’) !== false
|| strpos($ua, ‘alcatel’) !== false
|| strpos($ua, ‘ericy’) !== false
|| strpos($ua, ‘up.link’) !== false
|| strpos($ua, ‘vodafone/’) !== false
|| strpos($ua, ‘wap1.’) !== false
|| strpos($ua, ‘wap2.’) !== false;

$isBot = $ip == ‘66.249.65.39’
|| strpos($ua, ‘googlebot’) !== false
|| strpos($ua, ‘mediapartners’) !== false
|| strpos($ua, ‘yahooysmcm’) !== false
|| strpos($ua, ‘baiduspider’) !== false
|| strpos($ua, ‘msnbot’) !== false
|| strpos($ua, ‘slurp’) !== false
|| strpos($ua, ‘ask’) !== false
|| strpos($ua, ‘teoma’) !== false
|| strpos($ua, ‘spider’) !== false
|| strpos($ua, ‘heritrix’) !== false
|| strpos($ua, ‘attentio’) !== false
|| strpos($ua, ‘twiceler’) !== false
|| strpos($ua, ‘irlbot’) !== false
|| strpos($ua, ‘fast crawler’) !== false
|| strpos($ua, ‘fastmobilecrawl’) !== false
|| strpos($ua, ‘jumpbot’) !== false
|| strpos($ua, ‘googlebot-mobile’) !== false
|| strpos($ua, ‘yahooseeker’) !== false
|| strpos($ua, ‘motionbot’) !== false
|| strpos($ua, ‘mediobot’) !== false
|| strpos($ua, ‘chtml generic’) !== false
|| strpos($ua, ‘nokia6230i/. fast crawler’) !== false;

Ini adalah function dasar yang digunakan untuk mengenal macam-macam mobile browser sehingga memudahkan kita dalam pengembangannya. Kalau ada jenis mobile browser yang baru bisa kalian tambahkan sendiri dalam kode function.

Sedangkan untuk proses PHP-nya sendiri saya sempat terkecoh, awal mulanya saya mengira bahwa semua mobile browser tidak bisa mengenal file dengan extensi PHP ternyata perkiraan saya itu salah, mobile browser mengenal file dengan extensi PHP (namun tidak semua, mungkin untuk handphone yang benar-benar jadul tidak mengenal).

Berikutnya mudah saja, standard-nya root folder dari sebuah website adalah file index dengan extensi bermacam-macam, bisa html php dan lainnya. Kita bisa memanfaatkan ini sebagai pintu masuk sekaligus dengan fungsi deteksi diatas kita akan memilih ke arah mana pengunjung akan kita arahkan dengan PHP if.ย  Contoh mudahnya seperti dibawah ini:

if($isMobile){

header(‘Location: ‘ . urlencode($_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’]));

exit();

}

Mudah bukan? Ternyata cuma begitu saja… hehehe… ๐Ÿ˜›

[/to_like]

 

Kata Kunci Terkait:

30 thoughts on “Cara Mendeteksi Mobile Browser Dengan PHP”

  1. saya coba melalui Mozilla dan Safari… namun hasilnya Redirect Loop.. Apa karena saya online menggunakan Modem HSDPA ya ? tapi signal 3G full mas..

    Reply

Leave a Comment

[+] yoyocici emoticons Istanto Personal Blog

This site uses Akismet to reduce spam. Learn how your comment data is processed.