Làm cách nào để kiểm tra thiết bị di động hoặc máy tính để bàn trong PHP?

Gần đây, khi đang thực hiện một dự án của khách hàng, chúng tôi đã gặp một tình huống cần hiển thị các thanh trượt khác nhau trên một trang web dành cho máy tính để bàn và thiết bị di động. Đôi khi bạn có thể muốn phân phát nội dung khác cho thiết bị di động. Trong bài viết này tôi hướng dẫn các bạn cách phát hiện thiết bị di động trong PHP

Có một số trường hợp chúng tôi ẩn các phần của trang web dành cho thiết bị di động. Đây là những phần được tạo cho máy tính để bàn và không dành cho thiết bị di động. Bạn có thể tạo các phần như vậy theo cách khác cho người dùng di động. Sau đó, sử dụng truy vấn phương tiện, bạn áp dụng quy tắc (hiển thị/ẩn) cho các thiết bị khác nhau. Các truy vấn phương tiện hoạt động ở phía máy khách. Nhược điểm của việc sử dụng truy vấn phương tiện là các phần của bạn được tải ngay cả khi bạn đang ẩn nó trên thiết bị. Nó chỉ thêm tải không cần thiết trên trang web. Cách tốt hơn để xử lý việc này là áp dụng các điều kiện ở phía máy chủ cho thiết bị di động

Trong một tình huống khác, bạn đang lập kế hoạch xây dựng một trang web khác cho người dùng di động. Khi người dùng truy cập URL của bạn, bạn muốn chuyển hướng họ đến trang web dành cho thiết bị di động của mình. Đây là một vài ví dụ mà chúng tôi muốn phát hiện thiết bị di động ở phía máy chủ. Có thể có hàng trăm trường hợp khác nhau. Trong trường hợp của tôi, đó là một thanh trượt khác cho máy tính để bàn và thiết bị di động

Như đã nói, chúng ta hãy xem cách phát hiện thiết bị di động trong PHP

Bắt đầu

Để xử lý phát hiện di động, thư viện có tên Mobile-Detect có sẵn trên GitHub

Thư viện này cung cấp một cách rất rõ ràng và dễ dàng để tìm hiểu xem người dùng có sử dụng thiết bị di động hay không. Bạn cũng có thể kiểm tra các thiết bị Máy tính bảng. Thư viện sử dụng chuỗi Tác nhân người dùng có sẵn trong tiêu đề HTTP để phát hiện môi trường thiết bị. Nếu bạn tò mò muốn biết về tiêu đề HTTP, chỉ cần in $_SERVER cung cấp cho bạn thông tin về tiêu đề, đường dẫn và vị trí tập lệnh

print_r($_SERVER);

Để cài đặt thư viện này, tôi khuyên bạn nên sử dụng Composer. Mở terminal trong thư mục gốc dự án của bạn và chạy lệnh bên dưới

composer require mobiledetect/mobiledetectlib

Nếu bạn không muốn sử dụng Trình soạn thảo thì một cách khác là đưa tệp Mobile_Detect.php này vào dự án của bạn

Phát hiện thiết bị di động trong PHP

Nếu bạn đã cài đặt thư viện bằng Trình soạn thảo thì hãy thêm câu lệnh bên dưới vào đầu tệp của bạn

require_once "vendor/autoload.php";

Sau đó, tạo phiên bản của lớp

composer require mobiledetect/mobiledetectlib
0 và bạn có thể tìm hiểu xem khách truy cập của mình có sử dụng thiết bị di động hay không

$detect = new Mobile_Detect;
 
if ( $detect->isMobile() ) {
    echo "You are on the mobile device.";
} else {
    echo "You are on desktop.";
}

Để kiểm tra thiết bị Máy tính bảng, hãy sử dụng câu lệnh

if ( $detect->isTablet() ) {
    echo "You are on the Tablet.";
}

Đó là nó. Bạn xong việc rồi. Đây là cách dễ nhất để phát hiện thiết bị di động trong PHP. Hãy cho tôi biết suy nghĩ và đề xuất của bạn trong phần bình luận bên dưới

Bạn có thể thấy nhiều trang web có phiên bản dành cho máy tính để bàn và cả phiên bản dành cho thiết bị di động được đơn giản hóa của cùng một trang web để giúp người dùng internet di động đơn giản hơn. Nhưng để làm điều đó, bạn phải phát hiện một thiết bị di động

Phát hiện thiết bị di động từ phía máy chủ là cách tốt nhất vì nó sẽ không tải nội dung không cần thiết và thực sự giúp trang web nhanh hơn bằng cách chỉ tải nội dung bạn muốn hiển thị trên thiết bị di động

Mặc dù bạn có thể sử dụng truy vấn phương tiện CSS nhưng nó sẽ không ngăn thiết bị di động tải nội dung mà bạn chỉ muốn cho máy tính hoặc máy tính để bàn

Vì vậy, cách tốt nhất để phát hiện thiết bị di động từ phía máy chủ. Bạn có thể làm điều đó bằng cách sử dụng PHP. Trong hướng dẫn này, tôi sẽ chỉ cho bạn một đoạn mã PHP đơn giản sẽ dễ dàng phát hiện xem khách truy cập trên trang web của bạn có đang sử dụng thiết bị di động hay không

Đoạn mã PHP để phát hiện thiết bị di động

Belo là mã PHP đơn giản có thể được sử dụng để phát hiện thiết bị di động

function isMobileDevice() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

Làm cách nào để sử dụng đoạn mã PHP ở trên?

Sau khi bạn đặt mã ở trên, bạn có thể sử dụng nó như mã bên dưới

if(isMobileDevice()){
    //Your content or code for mobile devices goes here
}
else {
    //Your content or code for desktop or computers devices
}

Dưới đây là mã hoàn chỉnh mà bạn có thể kiểm tra trên thiết bị di động và máy tính để bàn

<?php
function isMobileDevice() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

if(isMobileDevice()){
    echo "It is a mobile device";
}
else {
    echo "It is desktop or computer device";
}
?>

Bây giờ hãy kiểm tra đoạn mã trên. Nếu bạn kiểm tra nó bằng thiết bị di động của mình thì bạn sẽ thấy dòng chữ “Đó là thiết bị di động”. Và khi bạn kiểm tra nó với PC hoặc máy tính để bàn của mình, bạn sẽ thấy dòng chữ “It is desktop or computer device”

Vì vậy, làm thế nào mà được?

Bây giờ nếu bạn có thể phát hiện thiết bị di động trong PHP, thì bạn cũng có thể phát hiện máy tính để bàn chỉ bằng cách sử dụng lại câu lệnh if other. Trong đoạn mã trên, những gì bạn có thể thấy trong phần khác dành cho thiết bị máy tính để bàn

8 phản hồi cho “Cách đơn giản để phát hiện thiết bị di động trong PHP”

  1. p1clem nói.

    20 Tháng mười hai, 2017 lúc 10. 36 giờ chiều

    xin vui lòng làm quen với điều này có thể chỉ cho tôi một ví dụ về cách sử dụng mã

    Đáp lại

    • informerfrk nói.

      21 Tháng mười hai, 2017 lúc 3. 40 giờ chiều

      Thật đơn giản. Sau khi tạo chức năng, bạn có thể sử dụng mã này giống như cách.
      if(isMobileDevice()){
      echo “Đó là thiết bị di động”;
      }
      else {
      echo “It is desktop or computer device”;
      }

      Đáp lại

  2. lirik laban nói.

    25 Tháng Ba, 2018 lúc 6. 30 giờ sáng

    Kính gửi, infofrk

    Tôi muốn tạo tiện ích quảng cáo nhưng nó chỉ hiển thị trên màn hình Di động. Và không được hiển thị trên máy tính để bàn. Làm cách nào để làm được, mình đã thử làm như bạn nói ở trên nhưng quảng cáo cũng xuất hiện trên màn hình nền…

    làm ơn

    Đáp lại

    • Faruque Ahamed Mollick nói.

      25 Tháng Ba, 2018 lúc 4. 57 giờ tối

      Xin chào lirik, tôi không thể thấy mã của bạn. Vui lòng kiểm tra lại mã của bạn. Ngoài ra, hãy đảm bảo rằng máy tính để bàn của bạn không ở chế độ thiết bị di động hoặc trình duyệt dành cho thiết bị di động của bạn không ở chế độ máy tính để bàn

      Đáp lại

  3. Fred McKinney nói.

    Tháng Mười Một 19, 2018 lúc 10. 13 giờ chiều

    Tuy nhiên, mã hiển thị quảng cáo phải nằm trong dấu ngoặc đơn ngay sau phần NẾU của câu lệnh. Có một điều kiện ELSE không phải là một yêu cầu. Do đó, nếu mã hiển thị quảng cáo của bạn nằm trong ngoặc đơn ngay sau câu lệnh IF và một người đang xem trang của bạn trên máy tính để bàn hoặc máy tính xách tay thì mã hiển thị quảng cáo sẽ bị bỏ qua. Hay bạn đã thử điều đó?

    Đáp lại

  4. DLBone nói.

    25 Tháng Ba, 2019 lúc 3. 28 giờ sáng

    Tôi hiểu đây là một chủ đề cũ. Hầu hết mọi người sẽ không bận tâm đăng hoặc trả lời ở đây. Tôi thấy mã này rất hữu ích trong việc phát hiện thiết bị di động trên trang web của tôi. Tôi sử dụng mã này theo cách sau. Mã rất đẹp, cảm ơn đã chia sẻ

    [code]
    function isMobileDevice() {
    return preg_match(“/(android. tiên phong. dâu đen. chớp. tăng. bóng chày. docomo. điện thoại. hà mã. nhỏ. điện thoại di động. lòng bàn tay. điện thoại. bánh. máy tính bảng. lên\. trình duyệt. lên\. liên kết. webos. wos)/i”, $_SERVER[“HTTP_USER_AGENT”]);
    }
    if(isMobileDevice()){
    . php’;
    }
    else {
    require ‘web/index. php’;
    }
    [/code]

    Đáp lại

  5. Fernando nói.

    Tháng Tám 11, 2019 lúc 7. 13 giờ chiều

    Cám ơn rất nhiều. Tôi đang sử dụng mã này để phát hiện máy tính hoặc thiết bị di động trên trang web của mình và nó hoạt động rất tốt

    Làm cách nào bạn có thể phát hiện thiết bị di động bằng PHP?

    php $useragent=$_SERVER['HTTP_USER_AGENT']; . bb\d+. meo). .
    Giải nén tệp vào một thư mục trong máy chủ PHP của bạn
    Sau đó thêm đoạn mã sau vào trang PHP của bạn
    Tất cả thông tin thiết bị khả dụng sẽ được chứa trong mảng $_51d

    PHP có phải là máy tính để bàn không?

    PHP Desktop là một dự án mã nguồn mở được thành lập bởi Czarek Tomczak vào năm 2012 để cung cấp cách phát triển các ứng dụng GUI dành cho máy tính để bàn gốc bằng các công nghệ web như PHP, HTML5, JavaScript và SQLite. Hãy nghĩ về nó như Electron cho PHP

    Làm cách nào tôi có thể lấy thông tin trình duyệt trong PHP?

    Laravel phát hiện thiết bị di động như thế nào?

    Làm cách nào để phát hiện thiết bị là thiết bị di động hay máy tính để bàn trong Laravel? .
    Cài đặt gói jessenger/ajent. Chúng tôi cần cài đặt gói trình soạn thảo jessenger/ajent để nhận giá trị ajent của người dùng, vì vậy bạn có thể cài đặt bằng lệnh sau. .
    Phát hiện là thiết bị di động. Tuyến đường. get('phát hiện', hàm().
    Phát hiện là máy tính để bàn. .
    Phát hiện là máy tính bảng