2012-03-12 35 views
28

Tôi đang tìm cách phát hiện thiết bị trong PHP và tôi đang xem xét một vài tùy chọn. Một trong số đó có vẻ tốt nhất hiện nay là WURFL http://wurfl.sourceforge.net/. Nhưng tôi rất ngại vì nó không có giấy phép nguồn mở. Tôi cũng tự hỏi nếu nó thậm chí có liên quan bởi vì các trang web tài liệu nhìn loại ngày.Giải pháp WURFL nguồn mở tốt nhất

Các tùy chọn khác như WURFL bao gồm http://deviceatlas.com/http://51degrees.mobi/ nhưng cả hai tùy chọn này thậm chí không gần nguồn mở.

Sau đó, có các giải pháp chỉ PHP như http://detectmobilebrowsers.mobi, http://code.google.com/p/php-mobile-detect/http://detectmobilebrowsers.com/ nhưng tất cả đều sử dụng một số hình thức regex trông xấu xí.

Giải pháp lý tưởng cho tôi sẽ là tệp XML hoặc cơ sở dữ liệu nguồn mở mà tôi có thể lưu trữ cục bộ và có thể được cập nhật khi cần.

Tôi có mơ không? Bạn thích giải pháp nào để phát hiện người dùng di động?

+0

Phí giấy phép cấp nhập WURFL rất phải chăng và dự án rất tích cực bên cạnh tài liệu ngày. –

+1

51Degrees.mobi có một thành phần nguồn mở được cấp phép theo Giấy phép Công cộng Mozilla. Xem http: //51degrees.codeplex.com/ –

+0

Nếu giấy phép AGPL của WURFL không phù hợp với bạn, bạn có thể xem phiên bản được lưu trữ (WURFL Cloud), có một gói miễn phí. Xin lưu ý, tôi liên kết với ScientiaMobile/WURFL, vì vậy tôi khuyến khích bạn so sánh các tùy chọn khác nhau và xem tùy chọn nào phù hợp nhất với bạn! Lưu ý phụ: chúng tôi đồng ý rằng trang WURFL SourceForge rất cần trang điểm - nằm trong danh sách ngắn các dự án ưu tiên hàng đầu :) – SteveK

Trả lời

1

Tôi sử dụng MobileESP không cao cấp như WURFL, nhưng thực hiện thủ thuật cho nhu cầu của tôi. Không có cơ sở dữ liệu riêng biệt trong MobileESP mà bạn có thể nâng cấp, bạn phải nâng cấp toàn bộ thư viện.

4

Xin lỗi làm sống lại bài đăng đã chết nhưng có một giải pháp thay thế mã nguồn mở - OpenDDR - nhưng tôi không thể tìm thấy thư viện PHP cho nó, vì vậy bạn sẽ cần mã phân tích cú pháp và tìm kiếm của riêng bạn.

+1

OpenDDR hiện có thể được tìm thấy dưới http://openddr.mobi. Nó được cập nhật và bao gồm mọi thứ được đóng góp tại Apache DeviceMap. –

0

Nếu bạn chỉ cần phân loại thiết bị - ví dụ: thiết bị di động, máy tính để bàn hoặc máy tính bảng - sau đó Categorizr có lẽ là tùy chọn tốt nhất. Nó có một phương pháp tiếp cận di động đầu tiên vì nó dễ dàng hơn để xác định dân số nhỏ và tương đối ổn định của các trình duyệt máy tính để bàn so với số lượng lớn các trình duyệt di động và các trình duyệt khác.

+2

Phân loại không còn được hỗ trợ – David

4

Bất kỳ lý do nào không sử dụng dự án ua-parser?

Các PHP khách hàng là ở đây: https://github.com/tobie/ua-parser/tree/master/php

+2

Dự án này phân tích chuỗi UA thành các biểu mẫu có thể đọc được, nó thực sự không thực hiện bất kỳ 'Phát hiện khả năng thiết bị' nào cả. –

2

tôi sử dụng một kịch bản dựa trên công việc tại http://detectmobilebrowsers.com/. Nó tóm tắt thành một biểu thức chính quy, được hỗ trợ bằng nhiều ngôn ngữ, không chỉ PHP. Khi regex đi, nó thậm chí không khủng khiếp xấu xí: một trong những chính chỉ là một vài dòng dài, và sẽ cực kỳ nhanh chóng để phân tích cú pháp trong hầu hết các ngôn ngữ/khuôn khổ. Là một regex, nó hoàn toàn minh bạch, và không yêu cầu bạn phải cài đặt một số kho lưu trữ librarly, DLL hoặc DB/file.

Tác giả, Chad Smith, sử dụng cơ sở dữ liệu WURFL để biên dịch Regex gọn gàng, nhỏ gọn để phát hiện chỉ trình duyệt trên thiết bị di động. Các máy tính bảng được loại trừ dựa trên giả định rằng chúng sẽ hoạt động tốt với phiên bản máy tính để bàn của một trang. Anh ta dường như cập nhật nó mỗi năm một lần, hoặc ít nhất mỗi khi một trình duyệt di động mới xuất hiện (thường không phải là rất thường xuyên.)

2

Thật dễ dàng để thêm trình duyệt Trình duyệt Tablet vào regex của Chad Smith, và dường như nó hoạt động tốt . Xem phần giới thiệu:

http://detectmobilebrowsers.com/about

Các vấn đề liên quan