كيف يمكنني التأكد أن زائر الصفحة يستخدم موبايلاً حتى يمكنني تحويله تلقائياً لصفحة الموابايل؟
معرفة ما إذا كان المتصفح موبايلاً؟
استخدم هذا الكود
$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;طريقة الاستخدام
if($isMobile){
header('Location: http://m.mowser.com/web/' . urlencode($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
exit();
}ان شاء الله يكون الكود واضح ومفهوم
ماذا عن Nokia N900؟ لماذا لا يتم التعرف عليه كموبايل؟
في الحقيقة لم اجرب الكود في الاعلى
لكن الفكرة بسيطة جدا ً
تعرف اذا كان الزائر يتصفح من جوال ام لا عن طريق نظام التشغيل
عن طريق $_SERVER['HTTP_USER_AGENT'] تستطيع ان تعرف نوع نظام التشغيل للزائر
ثم بعد ذلك تكون قائمة بأنظمة تشغيل الجوال وتعمل شرط اذا كان نظام تشغيل الزائر احد هذه الانظمة اذن هو يتصفح من الجوال
مالم فهو يتصفح من الحاسب الالي
وهذا هو الكود الذي يقوم بهذه العملية
<?php
function isMobile($userAgent)
{
$oses = array (
'iPhone' => '(iPhone)',
'Symbian' => 'SymbianOS',
'Android' => 'Android',
'iPad' => 'iPad',
'BenQ' => 'BenQ',
'BlackBerry' => 'BlackBerry',
'compatible' => 'compatible',
'Windows Phone' => 'Windows Phone',
'Nokia2700' => 'Nokia2700',
'Nokia2760' => 'Nokia2760',
'Nokia3120Classic' => 'Nokia3120Classic'
);
foreach($oses as $os=>$pattern){
if(eregi($pattern, $userAgent)) {
return true ;
}
}
return false;
}
if(isMobile($_SERVER['HTTP_USER_AGENT']))
{
echo 'mobile';
}else{
echo 'not Mobile';
}
?>ملاحظة قد تكون هناك انظمة تشغيل اخرى للجوالات غير موجوده في الكود , كل ما عليك فقط اضافة اسم نظام التشغيل الى القائمة