পিএইচপি-তে কোনও মোবাইল ডিভাইস সনাক্ত করার সহজ উপায়


184

কোনও ব্যবহারকারী যদি পিএইচপি ব্যবহার করে আমার সাইট ব্রাউজ করতে কোনও মোবাইল ডিভাইস ব্যবহার করছেন তা বলার সহজ উপায়টি কী?

আমি আপনি ব্যবহার করতে পারেন যে অনেক ক্লাস জুড়ে এসেছি কিন্তু আমি শর্ত যদি একটি সহজ আশা ছিল!

আমি কি এটি করার কোন উপায় আছে?


আপনি পৃষ্ঠাটিতে একটি জাভাস্ক্রিপ্ট রাখতে পারেন যা স্ক্রিনের রেজোলিউশন চেক করে তবে এটি ক্লায়েন্ট-সাইড হবে: howtocreate.co.uk/tutorials/javascript/browserwindow
thejh

আপনার সমাধানটি এখানে: কোড. google.com/p/php-mobile-detect2
সের্গেজ জেভসেজেভ

রেটিনা ডিভাইসের কারণে আজকাল পর্দার আকার চেক করা জটিল is
মার্টিন জেমস

উত্তর:


311

এখানে একটি উত্স:

কোড:

<?php

$useragent=$_SERVER['HTTP_USER_AGENT'];

if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))

header('Location: http://detectmobilebrowser.com/mobile');

?>

8
HTTP_USER_AGENT নকল হতে পারে?
datasn.io

2
@ নাভেদ সবেমাত্র মাথা উপরে উঠছে, এটি আর কাজ করছে বলে মনে হয় না। আইওএস 8.1 এ Chrome এর মোবাইল ব্রাউজার ব্যবহার করে পরীক্ষিত। জাস্টিন যদিও আমার জন্য কাজ করছে।
জেমস

14
@ কাভিওর.কম হ্যাঁ এটি নকল হতে পারে, তবে আমাদের যদি তারা ইচ্ছা করে নকল করার অনুমতি দেওয়া উচিত ... কারণ এটি তাদের উদ্দেশ্য, কেন লোকেরা তাদের বিশেষভাবে যা করতে চায় তা বন্ধ করে দেয় (অর্থাত্ কোনও কারণে ডেস্কটপ সংস্করণটি লোড করুন) )?
নিক স্টিল

4
এই উত্তর এখন তাই অপ্রচলিত। অনেকগুলি মিথ্যা ইতিবাচক রয়েছে, ওএসএক্স-এ সাফারি মোবাইল হিসাবে সনাক্ত করা হয়েছে, ওএসএক্স-এ ক্রোমকে মোবাইল হিসাবে সনাক্ত করা হয়েছে।
DevZer0

3
@ দেবজার 0: ঠিক আছে। আপনি এই উত্তরটির শেষে সর্বশেষ সমাধান যোগ করতে পারেন।
নাভেদ

91

আমি এই স্ক্রিপ্টটি পিএইচপি-তে একটি মোবাইল ব্রাউজার সনাক্ত করতে লিখেছিলাম ।

কোডটি ব্যবহারকারী-এজেন্ট স্ট্রিংয়ের উপর ভিত্তি করে একটি ব্যবহারকারীকে preg_match () ing শব্দগুলির দ্বারা সনাক্ত করে যা শত শত পরীক্ষার পরে কেবলমাত্র মোবাইল ডিভাইস ব্যবহারকারী-এজেন্ট স্ট্রিংগুলিতে পাওয়া যায়। বর্তমানের সমস্ত মোবাইল ডিভাইসে এটির 100% নির্ভুলতা রয়েছে এবং আরও মোবাইল ডিভাইসগুলি বের হয়ে আসার জন্য সমর্থন করার জন্য আমি বর্তমানে এটি আপডেট করছি। কোডটিকে ইজমোবাইল বলা হয় এবং নিম্নরূপ:

function isMobile() {
    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"]);
}

আপনি এটি এর মতো ব্যবহার করতে পারেন:

// Use the function
if(isMobile()){
    // Do something for only mobile users
}
else {
    // Do something for only desktop users
}

আপনার মোবাইল সাইটে কোনও ব্যবহারকারীকে পুনর্নির্দেশ করতে, আমি এটি করব:

// Create the function, so you can use it
function isMobile() {
    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 the user is on a mobile device, redirect them
if(isMobile()){
    header("Location: http://m.yoursite.com/");
}

আপনার যদি কোন প্রশ্ন থাকে এবং শুভকামনা থাকে তা আমাকে জানান!


4
@ রবার্টহারভে - আমি বিভ্রান্ত তারা সবাই মূলত একই জিনিস জিজ্ঞাসা করছে তাই প্রশ্নের উত্তর ছাড়া আমার কী করা উচিত? তাদের বলুন প্রতিবার অন্য কিছু ব্যবহার করতে? আমি এখানে নতুন তাই আমি নিশ্চিত নই যে আমি প্রথম উত্তরের সাথে লিঙ্ক করব?
জাস্টিন ডোকান্টো

এই ট্যাবলেটটি "ট্যাবলেট" কিছু আইই 8 (পিসি) শিরোনামে আমাকে সমস্যা তৈরি করছে যার প্রতিক্রিয়াতে "ট্যাবলেট পিসি 2.0" রয়েছে
ম্লাদেন জঞ্জেটভিক

কেন একটি ফাংশন ব্যবহার করে সাধারণ ভেরিয়েবলের পরিবর্তে শর্ত সঞ্চয় করতে এবং করতে if($isMobile) {}?
D4V1D

10
আপডেট সংস্করণটি এখানে: return preg_match("/(android|webos|avantgo|iphone|ipad|ipod|blackberry|iemobile|bolt|boost|cricket|docomo|fone|hiptop|mini|opera mini|kitkat|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);এটি কয়েকটি নতুন ডিভাইসের সংগ্রহ।
আইভিজন স্টেফান স্টিপিয়াস


16

আমি মোবাইলটিকে সত্যই সাধারণ বলে সনাক্ত করেছি এবং আপনি কেবলমাত্র isMobile()ফাংশনটি ব্যবহার করতে পারেন :)


2
আমি পছন্দ করি যে এই ক্লাসটি নিয়মিত আপডেট হয় বলে মনে হচ্ছে। এই মন্তব্য হিসাবে 24 দিন আগে সর্বশেষ প্রকাশ
শোদেব

7

কেবল আপনি লিঙ্কটি অনুসরণ করতে পারেন। এটি খুব সহজ এবং ব্যবহার করা খুব সহজ। আমি এটি ব্যবহার করছি। এটা ঠিক আছে।

http://mobiledetect.net/

এই মত ব্যবহার করুন

//include the file
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;

// Any mobile device (phones or tablets).
if ( $detect->isMobile() ) {
 //do some code
}

// Any tablet device.
if( $detect->isTablet() ){
 //do some code
}

7
function isMobileDev(){
    if(isset($_SERVER['HTTP_USER_AGENT']) and !empty($_SERVER['HTTP_USER_AGENT'])){
       $user_ag = $_SERVER['HTTP_USER_AGENT'];
       if(preg_match('/(Mobile|Android|Tablet|GoBrowser|[0-9]x[0-9]*|uZardWeb\/|Mini|Doris\/|Skyfire\/|iPhone|Fennec\/|Maemo|Iris\/|CLDC\-|Mobi\/)/uis',$user_ag)){
          return true;
       }else{
          return false;
       };
    }else{
       return false;    
    };
}

7

আমি ভাবছিলাম, এখন অবধি, কেন কেউ implode()কোডটির আরও ভাল পঠনযোগ্যতার জন্য ব্যবহারের গ্রহণযোগ্য উত্তরটির সামান্য পরিবর্তন পোস্ট করেননি । সুতরাং এখানে এটি যায়:

<?php
$uaFull = strtolower($_SERVER['HTTP_USER_AGENT']);
$uaStart = substr($uaFull, 0, 4);

$uaPhone = [
    '(android|bb\d+|meego).+mobile',
    'avantgo',
    'bada\/',
    'blackberry',
    'blazer',
    'compal',
    'elaine',
    'fennec',
    'hiptop',
    'iemobile',
    'ip(hone|od)',
    'iris',
    'kindle',
    'lge ',
    'maemo',
    'midp',
    'mmp',
    'mobile.+firefox',
    'netfront',
    'opera m(ob|in)i',
    'palm( os)?',
    'phone',
    'p(ixi|re)\/',
    'plucker',
    'pocket',
    'psp',
    'series(4|6)0',
    'symbian',
    'treo',
    'up\.(browser|link)',
    'vodafone',
    'wap',
    'windows ce',
    'xda',
    'xiino'
];

$uaMobile = [
    '1207', 
    '6310', 
    '6590', 
    '3gso', 
    '4thp', 
    '50[1-6]i', 
    '770s', 
    '802s', 
    'a wa', 
    'abac|ac(er|oo|s\-)', 
    'ai(ko|rn)', 
    'al(av|ca|co)', 
    'amoi', 
    'an(ex|ny|yw)', 
    'aptu', 
    'ar(ch|go)', 
    'as(te|us)', 
    'attw', 
    'au(di|\-m|r |s )', 
    'avan', 
    'be(ck|ll|nq)', 
    'bi(lb|rd)', 
    'bl(ac|az)', 
    'br(e|v)w', 
    'bumb', 
    'bw\-(n|u)', 
    'c55\/', 
    'capi', 
    'ccwa', 
    'cdm\-', 
    'cell', 
    'chtm', 
    'cldc', 
    'cmd\-', 
    'co(mp|nd)', 
    'craw', 
    'da(it|ll|ng)', 
    'dbte', 
    'dc\-s', 
    'devi', 
    'dica', 
    'dmob', 
    'do(c|p)o', 
    'ds(12|\-d)', 
    'el(49|ai)', 
    'em(l2|ul)', 
    'er(ic|k0)', 
    'esl8', 
    'ez([4-7]0|os|wa|ze)', 
    'fetc', 
    'fly(\-|_)', 
    'g1 u', 
    'g560', 
    'gene', 
    'gf\-5', 
    'g\-mo', 
    'go(\.w|od)', 
    'gr(ad|un)', 
    'haie', 
    'hcit', 
    'hd\-(m|p|t)', 
    'hei\-', 
    'hi(pt|ta)', 
    'hp( i|ip)', 
    'hs\-c', 
    'ht(c(\-| |_|a|g|p|s|t)|tp)', 
    'hu(aw|tc)', 
    'i\-(20|go|ma)', 
    'i230', 
    'iac( |\-|\/)', 
    'ibro', 
    'idea', 
    'ig01', 
    'ikom', 
    'im1k', 
    'inno', 
    'ipaq', 
    'iris', 
    'ja(t|v)a', 
    'jbro', 
    'jemu', 
    'jigs', 
    'kddi', 
    'keji', 
    'kgt( |\/)', 
    'klon', 
    'kpt ', 
    'kwc\-', 
    'kyo(c|k)', 
    'le(no|xi)', 
    'lg( g|\/(k|l|u)|50|54|\-[a-w])', 
    'libw', 
    'lynx', 
    'm1\-w', 
    'm3ga', 
    'm50\/', 
    'ma(te|ui|xo)', 
    'mc(01|21|ca)', 
    'm\-cr', 
    'me(rc|ri)', 
    'mi(o8|oa|ts)', 
    'mmef', 
    'mo(01|02|bi|de|do|t(\-| |o|v)|zz)', 
    'mt(50|p1|v )', 
    'mwbp', 
    'mywa', 
    'n10[0-2]', 
    'n20[2-3]', 
    'n30(0|2)', 
    'n50(0|2|5)', 
    'n7(0(0|1)|10)', 
    'ne((c|m)\-|on|tf|wf|wg|wt)', 
    'nok(6|i)', 
    'nzph', 
    'o2im', 
    'op(ti|wv)', 
    'oran', 
    'owg1', 
    'p800', 
    'pan(a|d|t)', 
    'pdxg', 
    'pg(13|\-([1-8]|c))', 
    'phil', 
    'pire', 
    'pl(ay|uc)', 
    'pn\-2', 
    'po(ck|rt|se)', 
    'prox', 
    'psio', 
    'pt\-g', 
    'qa\-a', 
    'qc(07|12|21|32|60|\-[2-7]|i\-)', 
    'qtek', 
    'r380', 
    'r600', 
    'raks', 
    'rim9', 
    'ro(ve|zo)', 
    's55\/', 
    'sa(ge|ma|mm|ms|ny|va)', 
    'sc(01|h\-|oo|p\-)', 
    'sdk\/', 
    'se(c(\-|0|1)|47|mc|nd|ri)', 
    'sgh\-', 
    'shar', 
    'sie(\-|m)', 
    'sk\-0', 
    'sl(45|id)', 
    'sm(al|ar|b3|it|t5)', 
    'so(ft|ny)', 
    'sp(01|h\-|v\-|v )', 
    'sy(01|mb)', 
    't2(18|50)', 
    't6(00|10|18)', 
    'ta(gt|lk)', 
    'tcl\-', 
    'tdg\-', 
    'tel(i|m)', 
    'tim\-', 
    't\-mo', 
    'to(pl|sh)', 
    'ts(70|m\-|m3|m5)', 
    'tx\-9', 
    'up(\.b|g1|si)', 
    'utst', 
    'v400', 
    'v750', 
    'veri', 
    'vi(rg|te)', 
    'vk(40|5[0-3]|\-v)', 
    'vm40', 
    'voda', 
    'vulc', 
    'vx(52|53|60|61|70|80|81|83|85|98)', 
    'w3c(\-| )', 
    'webc', 
    'whit', 
    'wi(g |nc|nw)', 
    'wmlb', 
    'wonu', 
    'x700', 
    'yas\-', 
    'your', 
    'zeto', 
    'zte\-'
];

$isPhone = preg_match('/' . implode($uaPhone, '|') . '/i', $uaFull);
$isMobile = preg_match('/' . implode($uaMobile, '|') . '/i', $uaStart);

if($isPhone || $isMobile) {
    // do something with that device
} else {
    // process normally
}

6

কোন নির্ভরযোগ্য উপায় নেই। আপনি সম্ভবত ব্যবহারকারী-এজেন্ট স্ট্রিংটি দেখতে পারেন , তবে এটি ছদ্মবেশী বা বাদ দেওয়া যেতে পারে। বিকল্পভাবে, আপনি ক্লায়েন্টের আইপি অ্যাড্রেস অনুসন্ধান করতে জিওআইপি পরিষেবা ব্যবহার করতে পারেন, তবে আবার এটি সহজেই সংঘবদ্ধ হতে পারে।


4
জিওআইপি সত্যিই সাহায্য করবে না। এমনকি যদি আপনি নির্ধারণ করতে পারেন যে তাদের আইপি কোনও মোবাইল নেটওয়ার্কের সাথে সম্পর্কিত, তারা ডেস্কটপ কম্পিউটারে সংযোগটি টিটারিং করতে পারে। যদি এটি কোনও মোবাইল নেটওয়ার্ক না হয় তবে সত্যই কিছুই নেই যে সমস্ত ডিভাইস Wi-Fi এর মাধ্যমে সংযুক্ত হতে পারে। এছাড়াও আপনার আইপি রেঞ্জগুলির একটি বিশ্বব্যাপী ডাটাবেস বজায় রাখার সমস্যা রয়েছে। ব্যবহারকারী এজেন্ট ব্যবহার করে, এটি নিখুঁত না হলেও, আমি ধরে নেব যে এটি অনেক বেশি নির্ভরযোগ্য। ভুল ব্রাউজারের বিষয়বস্তু পরিবেশন করা এটি আসলেই একটি সুরক্ষার সমস্যা বলে মনে হচ্ছে না, সুতরাং কে যত্ন করে? যদি কেউ সংযুক্ত আরব আমিরাতকে ফাঁকি দিচ্ছে তবে তারা ইতিমধ্যে জানে যে তারা কীভাবে প্রবেশ করছে।
মাইক

3

আপনাকে কেবল user_agent.phpফাইল অন্তর্ভুক্ত করতে হবে যা পিএইচপি পৃষ্ঠায় মোবাইল ডিভাইস সনাক্তকরণ থেকে পাওয়া যাবে এবং নিম্নলিখিত কোডটি ব্যবহার করুন।

<?php
//include file
include_once 'user_agent.php';

//create an instance of UserAgent class
$ua = new UserAgent();

//if site is accessed from mobile, then redirect to the mobile site.
if($ua->is_mobile()){
   header("Location:http://m.codexworld.com");
   exit;
}
?>

3
<?php 

//-- Very simple way
$useragent = $_SERVER['HTTP_USER_AGENT']; 
$iPod = stripos($useragent, "iPod"); 
$iPad = stripos($useragent, "iPad"); 
$iPhone = stripos($useragent, "iPhone");
$Android = stripos($useragent, "Android"); 
$iOS = stripos($useragent, "iOS");
//-- You can add billion devices 

$DEVICE = ($iPod||$iPad||$iPhone||$Android||$iOS);

if (!$DEVICE) { ?>

<!-- What you want for all non-mobile devices. Anything with all HTML, PHP, CSS, even full page codes-->

<?php }else{ ?> 

<!-- What you want for all mobile devices. Anything with all HTML, PHP, CSS, even full page codes --> 

<?php } ?>

2

51 ডিগ্রি ডটকম থেকে পিএইচপি ডিভাইস সনাক্তকরণটি আপনি যা চান ঠিক তেমনই করে - মোবাইল ডিভাইস এবং সনাক্তকারী ডিভাইসের সাথে সম্পর্কিত বিভিন্ন সম্পত্তি সনাক্ত করে। এটি ব্যবহার করা সহজ এবং কোনও রক্ষণাবেক্ষণের প্রয়োজন নেই। সেটআপ 4 সহজ ধাপে সম্পন্ন করা হয়:

  1. Http://sourceforge.net/projects/fiftyone/ থেকে জিপ ফাইলটি ডাউনলোড করুন।
  2. আপনার পিএইচপি সার্ভারের একটি ডিরেক্টরিতে ফাইল আনজিপ করুন।
  3. তারপরে আপনার পিএইচপি পৃষ্ঠায় নিম্নলিখিত কোডটি যুক্ত করুন:
  4. require_once 'path/to/core/51Degrees.php';
    require_once 'path/to/core/51Degrees_usage.php';
  5. সমস্ত উপলব্ধ ডিভাইস তথ্য information _51 ডি অ্যারেতে অন্তর্ভুক্ত থাকবে:
  6. if ($_51d['IsMobile'])
    {
        //Start coding for a mobile device here.
    }

51 ডিগ্রি ডিভাইস সনাক্তকারী সনাক্তকরণের জন্য নিয়মিত অভিব্যক্তি ব্যবহার করে না। কেবলমাত্র HTTP শিরোনামের গুরুত্বপূর্ণ অংশগুলি ডিভাইসগুলির সাথে মেলে ব্যবহৃত হয়। যা এই সমাধানটিকে দ্রুত (মাঝারি হার্ডওয়্যারে প্রতি সেকেন্ডে 5 000 000 সনাক্তকরণ) করে এবং সর্বাধিক নির্ভুল (99.97% যথার্থতা) হিসাবে সাপ্তাহিক ডেটাবেজে শত শত নতুন ডিভাইস যুক্ত করা হয় (সমর্থিত ডিভাইসের ধরণের মধ্যে কনসোল, স্মার্ট টিভি, ই-রিডারস, ট্যাবলেট এবং আরও অনেক কিছু)।

সফটওয়্যারটি মোজিলা পাবলিক লাইসেন্স 2 এর অধীনে বিতরণ করা ও বাণিজ্যিক এবং ওপেন সোর্স প্রকল্পগুলির সাথে সামঞ্জস্যপূর্ণ ওপেন সোর্স। বোনাস হিসাবে 51 ডিগ্রি সমাধানগুলিতে একটি পরিপূরক পিএইচপি চিত্র অপ্টিমাইজার থাকে যা মোবাইল ডিভাইসের জন্য চিত্রগুলি স্বয়ংক্রিয়ভাবে আকার পরিবর্তন করতে পারে।

ডিফল্টরূপে 51 ডিগ্রি পিএইচপি ডিভাইস সনাক্তকারী লাইট ডেটা ফাইল ব্যবহার করে যা নিখরচায় এবং প্রতিটি ডিভাইসের 30000 টিরও বেশি ডিভাইস এবং 50 টি বৈশিষ্ট্য ধারণ করে। প্রতি 3 মাসে একবার লাইট ফাইল আপডেট করা হয়। আপনি যদি মোবাইল ডিভাইসগুলির অনুরোধের বিষয়ে উচ্চ স্তরের বিশদ জানতে চান তবে প্রিমিয়াম এবং এন্টারপ্রাইজ ডেটা ফাইলগুলি উপলভ্য। প্রিমিয়ামে 70000 টিরও বেশি ডিভাইস এবং সাপ্তাহিক আপডেটগুলি সহ প্রতিটি ডিভাইসের জন্য 100 টি বৈশিষ্ট্য রয়েছে। এন্টারপ্রাইজ প্রতিদিন আপডেট হয় এবং এর জন্য 150 টিরও বেশি সংখ্যক 150000 ডিভাইস রয়েছে।

ডিভাইসের বৈশিষ্ট্যগুলির সম্পূর্ণ তালিকা
ডেটা ফাইলগুলির সাথে তুলনা করুন


1
যে সফ্টওয়্যার বিরক্তিকর। আইআইএসের জন্য কোনও সমর্থন নেই, কোনও পিএইচপি কেবল লাইব্রেরি নেই।
স্যাচললাকা

2

ব্যবহারকারী এজেন্ট স্ট্রিংয়ের মাধ্যমে ডিভাইস সনাক্তকরণ করতে আপনি তৃতীয় পক্ষের এপিআইও ব্যবহার করতে পারেন। এরকম একটি পরিষেবা হ'ল www.useragentinfo.co । কেবল সাইন আপ করুন এবং আপনার এপিআই টোকন পাবেন এবং নীচে আপনি কীভাবে পিএইচপি এর মাধ্যমে ডিভাইসটির তথ্য পাবেন:

<?php
$useragent = $_SERVER['HTTP_USER_AGENT'];
// get api token at https://www.useragentinfo.co/
$token = "<api-token>";
$url = "https://www.useragentinfo.co/api/v1/device/";

$data = array('useragent' => $useragent);

$headers = array();
$headers[] = "Content-type: application/json";
$headers[] = "Authorization: Token " . $token;

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));

$json_response = curl_exec($curl);

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

if ($status != 200 ) {
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
}

curl_close($curl);

echo $json_response;
?>

এবং দর্শকের আইফোন ব্যবহার করা হলে এখানে নমুনা প্রতিক্রিয়া জানানো হয়েছে:

{
  "device_type":"SmartPhone",
  "browser_version":"5.1",
  "os":"iOS",
  "os_version":"5.1",
  "device_brand":"Apple",
  "bot":false,
  "browser":"Mobile Safari",
  "device_model":"iPhone"
}

এইটা কাজ করে ! এবং এই সাধারণ স্ক্রিপ্টটি আমি খুঁজে পেল এমন সেরাগুলির মধ্যে একটি বলে মনে হচ্ছে: (এখনও অবধি) এটিই আমি খুঁজে পেয়েছি যা কেবলমাত্র আমার ASUS জেনপ্যাড ট্যাবলেট সনাক্ত করতে পারে! তবে দ্রষ্টব্য: তারা url কে https://useragentinfo.co/device এ পরিবর্তন করেছে , তাদের পৃষ্ঠাটি https://useragentinfo.co দেখুন : এটি কার্ল সম্পাদন করতে বাশ কোড দেয় তবে প্রকৃতপক্ষে আপনি এটি আপনার পিএইচপি লাইন দ্বারা প্রতিস্থাপন করতে পারেন। তবে আপনার "অনুমোদন: টোকেন .." রেখাটি বাদ দেওয়া উচিত কারণ এটির আর দরকার নেই বলে মনে হয় (এবং আমি সেই API কী পাওয়ার কোনও উপায় দেখতে পাই না)।
Roelof বার্কেপেইস

সাড়া পাচ্ছেন না। কেবল {showing দেখায় আমি মনে করি যে এপিআই টোকেনের দরকার ছিল আপনি কীভাবে টোকেনটি তৈরি করবেন আমাকে গাইড করতে পারেন।
মোহাম্মদ বশির

$ ডেটা = অ্যারে ('ইউজার_এজেন্ট' => $ ইউজারেজেন্ট); এটির মতো হওয়া উচিত: $ ডেটা = অ্যারে ('ইউজারেজেন্ট' => $ ইউজারেজেন্ট);
মোহাম্মদ বশির

ডোমেনটি যদি না পারা যায় তবে কী হবে?
এএনসেট

0
function isMobile(){
   if(defined(isMobile))return isMobile;
   @define(isMobile,(!($HUA=@trim(@$_SERVER['HTTP_USER_AGENT']))?0:
   (
      preg_match('/(android|bb\d+|meego).+mobile|silk|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i'
      ,$HUA)
   ||
      preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i'
      ,$HUA)
   )
   ));
}

echo isMobile()?1:0;
// OR
echo isMobile?1:0;

0

আপনি যদি পর্দার আকারের বিষয়ে যত্নশীল হন তবে আপনি স্ক্রিনের প্রস্থ এবং উচ্চতা কুকি মান হিসাবে সংরক্ষণ করতে পারেন যদি সেগুলি এখনও উপস্থিত না থাকে এবং তারপরে স্ব পৃষ্ঠার পুনঃনির্দেশ তৈরি করে।

এখন আপনার ক্লায়েন্ট এবং সার্ভারে কুকিজ রয়েছে এবং এটি মোবাইল ফোন, ট্যাবলেট এবং অন্যান্য ডিভাইস নির্ধারণ করতে ব্যবহার করতে পারেন

আপনি জাভাস্ক্রিপ্ট দিয়ে এটি কীভাবে করতে পারেন তা এখানে একটি দ্রুত উদাহরণ। সতর্কবাণী! [এই কোডে সিউডো কোড রয়েছে]

if (!getcookie("screen_size")) {
    var screen_width = screen.width;
    var screen_height = screen.height;
    setcookie("screen_size", screen_width+", " +screen_height);
    go2(geturl());
}

0
<?php
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
{
    echo('This is mobile device');
}
else
{
   echo('This is Desktop/Laptop device');
}
?>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.