الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

معرفة ما إذا كان المتصفح موبايلاً؟

بدأه jrahma في 20 ديسمبر 2011 · 3 رد · 657 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكنني التأكد أن زائر الصفحة يستخدم موبايلاً حتى يمكنني تحويله تلقائياً لصفحة الموابايل؟

#2

استخدم هذا الكود

$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();
}

ان شاء الله يكون الكود واضح ومفهوم

المصدر

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#3

ماذا عن Nokia N900؟ لماذا لا يتم التعرف عليه كموبايل؟

#4

في الحقيقة لم اجرب الكود في الاعلى

لكن الفكرة بسيطة جدا ً

تعرف اذا كان الزائر يتصفح من جوال ام لا عن طريق نظام التشغيل

عن طريق $_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';
}
?>

ملاحظة قد تكون هناك انظمة تشغيل اخرى للجوالات غير موجوده في الكود , كل ما عليك فقط اضافة اسم نظام التشغيل الى القائمة

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…