تشخیص دستگاه موبایل در php

  • آپدیت شده در تاریخ

تشخیص دستگاه موبایل در php

این روز ها تمام پروژه های تحت وب یک نسخه دسکتاپ و نسخه موبایل دارند . زمانی که کاربران و بازدیدکنندگان وبسایت شما را از طریق تلفن همراه می بینند باید به نسخه موبایل وبسایت هدایت (redirect) شوند. ما یک کلاس user agent  برای تشخیص دستگاه موبایل در php و همچنین تبلت نوشتیم .در این تکنیک از user agent ها کمک گرفتیم

User Agent چیست ؟

وبسایتها رابط کاربری مجزایی را برای نمایش محتوای وب سایت خود روی گوشیهای موبایل و تبلت ها ارائه کرده اند.هر مرورگری یه پارامتری داره بنام USER AGENT (بطور خلاصه UA) که مثل شناسنامه ی مرورگر است و اطلاعاتی از سیستم عامل ، نوع مرورگر ، موتور رندر مرورگر و نوع دستگاهی که این مرورگر روش نصب هست را ارائه میده. شما بعنوان برنامه نویس سایت می توانید هنگامی که کلاینت، صفحه ای را درخواست میکند ، همون اول کار با دستوراتی که در asp.net و php و بقیه زبانها وجود دارد، user agent کاربر را تشخیص دهید و بنا به نوع مرورگر کاربر، صفحات گوناگونی رو برایش response کنید.

کلاس user agent

کلاس user agent , یک کلاس ساده php است که به شما در تشخیص دستگاه موبایل در php کمک می کند .شما باید متد را از این کلاس صدا بزنید تا بررسی کند آیا بازدیدکننده شما از گوشی موبایل , کامپیوتر دسکتاب یا تبلت استفاده می کند و هرکدام را به نسخه مناسب خود هدایت می کند.

نحوه استفاده

شما کافیست که  فایل های مورد نیاز مربوط به کلاس ها  را از باکس دانلود , دریافت کنید . فایل user_agents_config.php شامل تمام user agent ها است و فایل user_agent.php هم کلاس userAgent را در بر دارد . همچنین حتما باید هر دو فایل در یک دایرکتری قرار بدید .

اول از همه شما باید فایل user_agents.php را فراخوانی و یک آبجکت از userAgent بسازید .حالا فقط تابع is_mobile() را برای بررسی بازدیدکننده صدا می زنیم . اگر تابع is_mobile() مقدار true را برگرداند , بازدیدکننده از گوشی موبایل است در غیر اینصورت مقدارfalse را برمیگرداند .

می توانید کد بالا را در اول صفحه فرود سایت خود در ورژن دسکتاپ برای تشخیص دستگاه موبایل در php استفاده کنید.

برای دریافت سورس کد کامل از از باکس دانلود استفاده کنید

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۸)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. مجید ۲ شهریور ۱۴۰۲

    سلام استاد، چرا توی متن فرمودین فایل user_agents_config.php فراخوانی بشه اما توی متن user_agent.php را فراخوانی کردید؟

    پاسخ
    1. حسن شفیعی ۲ شهریور ۱۴۰۲

      سلام. اصلاح شد

      پاسخ
  2. شاهرخ ۶ مهر ۱۴۰۰

    سلام
    وقتی سایت رو توسط گوشی باز میکنیم چطور کدی بنویسیم که در موبایل به جای نسخه موبایل سایت رو در حالت نسخه دسکتاپ ببینیم؟ البته در فایرفاکس و کروم گزینه Desktop site هست که اگه فعال کنیم سایت رو در حالت دسکتاپ مشاهده میکنیم نه در حالت موبایل ولی من میخام به جای اینکه کاربر تنظیمات مرورگر رو بزنه این کار رو سایت خودش با php یا javascript انجام بده. مثل بیشتر سایتها دو گزینه دارند مشاهده سایت در حالت موبایل و نسخه دسکتاپ

    پاسخ
    1. حسن شفیعی ۷ مهر ۱۴۰۰

      سلام. این دکمه ها که در بعضی سایت ها هست فقط مقدار تگ meta viewport رو تغییر می دند و میتونید با این تابع js این کارو انجام بدید

      این تابع رو باید به عنوان onclick یه دکمه قرار بدید تا بتونه تغییر کنه :

      پاسخ
  3. مهدی ۵ فروردین ۱۴۰۰

    سلام آیا برای تشخیص نوع صفحه نمایش، mobile detect رو باید در همه صفحات سایت فراخوانی کرد؟ و اینکه آیا برای هر صفحه سایت، یک صفحه برای نسخه دسکتاپ و یک صفحه برای نسخه موبایل طراحی کنیم؟

    پاسخ
    1. حسن شفیعی ۶ فروردین ۱۴۰۰

      سلام. بله مثلا در یک فایلی مثلا config.php که اطلاعات دیتابیس هست یا فایلی مثل header قرار بدید که این فایل ها چون کدهاشون در تمام صفحات استفاده میشه پس کد تشخیص هم در همه جا اجرا میشه و نیاز نیست در همه صفحات جداگانه اضافه کنید

      پاسخ
  4. رضا ۲۰ دی ۱۳۹۹

    سلام اقا یه سوال یه سایتی رو واردش که میشم میگه فقط با گوشی امکان دسترسی به این بخش رو دارید اومدم با شبیه ساز های موجود کار کردم بازم همینجور بود حتی خودم یکی ساختم بازم تشخیص میداد موضوع چیه چه فرقی بین یه موبایل و یه شبیه ساز اندروید هست که تشخیص میده؟! چطوری میتونم اینو رو سایت خودم پیاده کنم؟

    پاسخ
    1. حسن شفیعی ۲۰ دی ۱۳۹۹

      سلام.
      دقیق اطلاع ندارم شاید از user-agent مروگر تشخیص داده میشه یا بصورت pwa هست

      پاسخ
دوره های آموزشی