تشخیص پلتفرم‌های مختلف با پی اچ پی

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

mobile detect

چیز‌هایی که لازم داریم پی اچ پی هست و این کلاس mobile dectect که توسط ایشان نوشته شده.

یک پروژه ایجاد می‌کنم و در آن صفحه‌ای دارم با نام index.php که می‌خواهم اگر کسی با موبایل وارد این صفحه شد، با یک پیغام مواجه شود. کد زیر را در فایل index.php می‌نویسم:

    include('Mobile_Detect.php');

    if ($detect->isMobile()) {
        echo 'you are on mobile!';
    }else{
        // the content here...
    }

ابتدا کلاس مربوطه را در ایندکس اینکلود کردم (خط اول) و سپس یک شرط ساده دادم که اگر کاربر محترم با موبایل وارد صفحه شد، پیغام فلان را بده و اگر با موبایل نبود هم محتوای صفحه را نشان بده.

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

همه‌ی پلتفرم‌های موبایل:

if ($detect->isMobile()) {}

Iphone:

if ($detect->isIphone()) {}

Ipod:

if ($detect->isIpod()) {}

Android:

if ($detect->isAndroid()) {}

Blackberry:

if ($detect->isBlackberry()) {}

Opera mini:

if ($detect->isOpera()) {}

Windows Mobile:

if ($detect->isWindows()) {}

Palm:

if ($detect->isPalm()) {}

برای تشخیص پلتفرم‌هایی مانند پی‌اس‌پی، پی‌دی‌ای، پاکت پی‌سی، اسمارت فون و چیزهایی از این قبیل:

if ($detect->isGeneric()) {}

دریافت کلاس mobile detect

دیدگاه‌ها (۲۰)

  • یه افزونه هم هست واسه همین کار تو وردپرس که خود به خود نسخه موبایل میسازه و خود به خود مثل همین تشخیص میده!
    دستت خیلی خیلی درد نکنه!
    تو فکر بودم برای یه جاهایی از اون استفاده کنم! ولی حال تو کدها افتادن نداشتم تا پیداش کنم!
    خیلی خیلی ممنون استاد!!! :)
    :)

    پاسخ

  • خوشم اومد…
    بقیه پست های این چنینی رو هم بخونم شاید یه نمه با PHP بتونم کار کنم…

    پاسخ

  • ژانگولربازیتُ عشقه :))
    این مطلب خیلی خوب بود؛ خیلی میخواستم بدونم چجوری میشه که اینجوری میشه :) مرسی علی جوون

    پاسخ

  • مطلبی که نوشتی خیلی مفید و جالب بود.برای کسایی هم که از وردرپرس استفاده میکنن این پلاگین میتونه کارشون رو راه بندازه.امکانات جلبی داره.همچنین میتونید تم اختصاصی باهاش بسازید.
    http://wordpress.org/extend/plugins/wordpress-mobile-pack/screenshots/

    پاسخ

  • تیکه “ژانگولربازی‌” جالب بود
    و مطلب جالب‌تر.

    پاسخ

  • سلام استاد خوبی ؟
    پست خیلی خوبی بود ممنون
    آقا اگر می شود یک پست درباره css3 و یا تکنیکهای css هم بزار لطفا
    ممنون استاد

    پاسخ

  • ممنون

    خوب …. مفید … کوتاه … پرکاربرد …

    پاسخ

  • بسی کلاس جالبیه

    پاسخ

  • ممنون علی جان :) خیلی ارزنده بود >:D<

    پاسخ

  • سلام
    عالیه
    یه سوال داشتم :
    رزولیشن مانیتور رو هم میشه تشخیص داد و همین کار رو براشون کرد مثلا یه css برای وقتی مانیتور ۴:۳ هست و یه css برای وقتی مانیتور ۱۶:۹ هست؟؟

    پاسخ

    برای دیتکت کردن رزولوشن مانیتور می‌تونید از این استفاده کنید:
    http://www.justin-cook.com/wp/2006/10/06/detect-resolution-and-resize-contents-to-fit/
    و بر اساس اون شرط‌هاتون رو برقرار کنید.

    پاسخ

  • با سلام . بسیار عالی و کاربردی بود . متشکر از معرفی .

    پاسخ

  • سلام ممنون از مطالب بسیار مفیدت ، می خواستم در مورد ۹۶۰ کمی وقت بگذاری یاد بدی ممنون دارت میشم

    پاسخ

  • فکر می کنم یک راه خوب استفاده از اسکریپت های client-side باشه. یعنی ما سرور رو برای کار های مختص سرور استفاده کنیم و جهت تنظیمات نمایش که روی client-side اجرا می شه از javascript استفاده بشه. برای اینکار هم اسکریپت های قوی از جمله Modernizr یا jQuery نوشته شده اند.

    در مورد خود ارسال دیدگاه ها، چرا من هرچی توی ایمیل و آدرس وب می زنم نمی‌گذاره و خودش پاک می کنه؟ فکر کنم اسکریپت validation خوب کار نمی کنه.
    با تشکر

    پاسخ

  • سلام. علی جون چرا PR سایتت یکی افت کرد؟؟ شما که قالبت فوق بهینست :O

    پاسخ

  • سلام
    سایت هایی مثل myspy.ir چطور کار می کنن که علاوه بر این مشخصات، لیست سایت هایی که بازدید کردیم رو هم نشون میدن؟

    پاسخ

  • جالب و مفید بود.
    چند وقت پیش نمیدونم کجا یه دستور htaccess دیدم که همین کار رو انجام میداد اما فکر نمیکردم php همچین قابلیتی داشته باشه.
    ممنون بابت معرفی …

    پاسخ

  • ممنون ، کوتاه ، مفید و کاربردی .

    پاسخ

  • واقعا سایت با ارزش و مفیدیه ممنون از شما همینطور ادامه بدید :)

    پاسخ

  • خیلی ممنون. مفید و جالب بود

    پاسخ

دیدگاه خود را ارسال کنید


می‌توانید از برخی کدهای HTML استفاده نمایید:


<a> <b> <blockquote> <i> <em> <pre> <code> <strong>