PDA

View Full Version : سوال: دیتکت کردن ورژن موبایل یا پی سی



coders
دوشنبه 11 مرداد 1389, 11:46 صبح
سلام به اساتید بزرگوار
در خوست راهنمایی و نمونه کد داشتم، ممنون میشم تا بنده رو کمک کنید.

اگر دیده باشید که حتما هم همه دیدید برخی وب سایت ها هستند که اگر از طریق گوشی تلفن همراه، پی.دی.ای و پاکت پی.سی به انها متصل شوید به یک آدرس مختص به موبایل ارجاع داده میشن و اگر هم با کامپیوتر و لپ تاپ بهشون وصل بشید به آدرس اصلی ارجاع داده میشند.

در مرحله اول کدی میخوام که بتونه این ها رو از هم جدا کرده و به آدرس جدید منتقل کنید، یعنی بتونه سیستم طرف رو بگیره و به دوستور هدر به جای دیگه منتقل کنه، نکته مهم اینکه میخوام تممام گوشی هارو دیتکت کنه، نه برخیشون رو.

دسته بندی به این شکل:
1- گوشی های تلفن همراه، پی.دی.ای ها، پاکت پی.سی ها
2- لپ تاپ، نت بوک، دستکتاپ کامپیوتر


مورد بعدی اینکه میخوام اگر به طور مثال کاربر با موبایل به سایت وصل شده و قصد داشت ورژن پی.سی رو ببینه براش مقدور نباشه و حتما به موبایل ارجاع داده بشه، همینطور هم برای کامپوتر به هیچ وجه نتونه به بخش موبایل وارد بشه.


ممنون میشم نمونه کدهارو بذارید.

milad89
دوشنبه 11 مرداد 1389, 17:58 عصر
سلام دوست عزیز از کد زیر میتونی استفاده کنی




<?php

$mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wa p|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$mobile_browser++;
}

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$mobile_browser++;
}

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird' ,'blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil',' play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)) {
$mobile_browser++;
}

if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
$mobile_browser++;
}

if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
$mobile_browser=0;
}

if($mobile_browser>0) {
// دستوراتی که کاربر موبایل باشد
}
else {
// دستوراتی که کاربر کتمپیوتر باشد
}

?>

دوست عزیز کلا از user agnet استفاده میشه و هر گوشی با هر مدلی که باشه یا هر مرورگر user agent خودشمن رو دارن برای مثال
SAMSUNG-GT-S5233A/1.0 SHP/VPP/R5 Jasmine/0.8 Qtv5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1
این user agent گوشی سامسونگ هست که مدل گوشی هم بعد اسم سامسونگ اومده

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8

و این همuser agnet مرورگر فایرفاکس هست

با استفاده از user agent میشه مثلا برای گوشی خاص صفحه ای خاص نشون داد و ...

راستی با htaccess هم میتونی این کار رو انجام بدی ولی به نظر من کد بالا بهتر هست

موفق باشین