найти мобильный браузер по функции

У меня есть функция, которая работает хорошо, но мне нужно немного ее расширить, и я не программист

Теперь он может хорошо распознавать ios, и android, и web оба перенаправлены на одну страницу как для web, так и для android.

Цель состоит в том, чтобы перенаправить IOS на страницу 1, Android на страницу 2 и веб-ОС на страницу 3.

 function find_mobile_browser() {
if(preg_match('/(iphone|ipad|ipod)/i', $_SERVER['HTTP_USER_AGENT'])) {
return true;
} else {
return false;
}
}

Вызов такой:

<?php $mobile_browser = find_mobile_browser();
if($mobile_browser) {
include("ios.php"); /* if mobile browser detected, do this */
} else {
include("android_and_web.php"); /* else do this */
}
?>

Можете ли вы помочь мне расширить этот фрагмент, чтобы обнаружить его так, чтобы вызов мог это:

<?php $mobile_browser = find_mobile_browser();
if($mobile_browser) {
include("ios.php"); /* if ios detected, do this */
} else {
include("android.php"); /* if android detected, do this */
}

} else {
include("web_os.php"); /* if web-os detected, do this */
}
?>

Я думаю, что это не идеальный способ обнаружения мобильных устройств, но есть ли лучший?

Спасибо,
Оруэлл

После ваших хороших ответов я объясню, может быть, лучше.

Ответ «заголовка» полезен для меня, но я не программист, и поэтому я не заставляю его работать так, как я хочу. Перенаправление работает хорошо, но мне не нужно перенаправлений, мне нужно включать. Я хочу включить ios / android / web небольшой текстовый фрагмент (php-файлы) в некоторые из моих шаблонов.

Функция работает хорошо, но мой вызов не дал никакого результата. Здесь я пытаюсь вызвать функцию:

    <?php
$mobile_browser = find_mobile_browser();

if($mobile_browser == 'ios')
{
include("ios.php");
}
elseif ($mobile_browser == 'android')
{
include("android.php");
}
else
{
/* if no mobile os detected, include "web.php" */
}

?>

Надеюсь, теперь я прояснил, и вы не должны расстраиваться.

Заранее спасибо,
Оруэлл

Спасибо за ваши отличные ответы, — я получил это сейчас :))

Ура,
Оруэлл

1

Решение

Использовать Мобильный-Detect класс php.

Пример:

<?php
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;

if($detect->isAndroidOS()) {
include("android.php");
}elseif( $detect->isiOS()) {
include("ios.php");
}else( $detect->iswebOS()) {
include("web_os.php");
}
?>
1

Другие решения

Для перенаправления вы можете использовать заголовок

header('Location:'.$your_url);

Таким образом, код станет примерно таким (в зависимости от значения $mobile_browser)

function find_mobile_browser()
{
if(preg_match('/(iphone|ipad|ipod)/i', $_SERVER['HTTP_USER_AGENT']))
{
return 'ios';
}
elseif (preg_match('/(android)/i', $_SERVER['HTTP_USER_AGENT']))
{
return 'android';
}
else
{
return false;
}
}

<?php
$mobile_browser = find_mobile_browser();

$ios_url = 'http://www.example.com';
$android_url = 'http://www.example.com';
$web_url = 'http://www.example.com';

if($mobile_browser == 'ios')
{
header('Location:'.$ios_url);
exit;
}
elseif ($mobile_browser == 'android')
{
header('Location:'.$android_url);
exit;
}
else
{
header('Location:'.$web_url);
exit;
}

?>

1

Вы можете использовать PHP класс с именем: Мобильный детект

Ссылка для скачивания: https://github.com/serbanghita/Mobile-Detect/archive/2.8.12.zip

Вот пример кода для его использования, который вы можете настроить в зависимости от ваших потребностей:

<?php
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;

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

}

// Any tablet device.
if( $detect->isTablet() ){

}

// Exclude tablets.
if( $detect->isMobile() && !$detect->isTablet() ){

}

// Check for a specific platform with the help of the magic methods:
if( $detect->isiOS() ){

}

if( $detect->isAndroidOS() ){

}

$detect->is('Chrome');
$detect->is('iOS');
$detect->is('UC Browser');

$userAgents = array(
'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19',
'BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103',
);

foreach($userAgents as $userAgent){

$detect->setUserAgent($userAgent);
$isMobile = $detect->isMobile();
$isTablet = $detect->isTablet();

}

$detect->version('iPad'); // 4.3 (float)
$detect->version('iPhone') // 3.1 (float)
$detect->version('Android'); // 2.1 (float)
$detect->version('Opera Mini'); // 5.0 (float)

?>
0
По вопросам рекламы [email protected]