我有一个运行良好的功能,但我需要延长一点,并且我不一个程序员。
现在它可以很好地检测ios,并且android和web都被重定向到web和android两个页面。
目标是将ios重定向到第1页,将android重定向到第2页,将web-os重定向到第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 */
}
?>
我认为它不是检测移动设备的完美方式,但有更好的方法吗?
谢谢, 奥威尔
在你的答案很好之后,我会更好地解释一下。
&#34;标题&#34;答案对我很有用,但我不是程序员,所以我不知道如何使用它。重定向效果很好,但我不需要重定向,我需要包含。我想在我的一些模板中包含依赖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" */
}
?>
希望我现在更清楚,你不要不高兴。
提前致谢, 奥威尔
感谢您的满意答案, - 我现在得到了:))
干杯, 奥威尔
答案 0 :(得分:1)
要重定向,您可以使用header
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;
}
&GT;
答案 1 :(得分:1)
使用Mobile-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");
}
?>
答案 2 :(得分:0)
您可以使用名为Mobile Detect
的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)
?>