0

我正在尝试建立一个条件系统,它以编程方式检测浏览器(使用USER_AGENT字符串)和平台(使用 PHP-Mobile-Detect)。我当前的设置大致如下:

<DOCTYPE html>
<html>
<head>
<?php
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
?>
    <?php if($detect->isiPad()) {
        echo '<link rel="stylesheet" href="/style/iPad.css" type="text/css">';
    }

    else 
    {
        echo '<meta charset="UTF-8">
        <link rel="stylesheet" href="/style.css" type="text/css">;
        if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
            {
                echo '<link rel="stylesheet" href="../style/splash-webkit.css" type="text/css">';
            }
        //and so on for other browsers
        [etc]'
    }

这里出现的明显问题是 s 之间的冲突'echounder不是像我希望的那样在我的标签末尾结束,而是在代码中出现的第一个结束处结束,else实际上,它在第一个声明中。我怎样才能绕过这个问题?<style>'USER_AGENT

4

2 回答 2

5

您错过了'这一行末尾的 a:

<link rel="stylesheet" href="/style.css" type="text/css">;

将其替换为:

<link rel="stylesheet" href="/style.css" type="text/css">';

不过,您很好地使用了单引号和双引号。但是,如果您确实需要使用相同的引号,您始终可以使用\. 例如,这也可以:

echo '<meta charset=\'UTF-8\'>';
于 2012-08-24T12:25:07.543 回答
2

试试这个然后让我知道

else 
{
echo '<meta charset="UTF-8"><link rel="stylesheet" href="/style.css" type="text/css">';
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
{
echo '<link rel="stylesheet" href="../style/splash-webkit.css" type="text/css">';
}
//and so on for other browser
}
于 2012-08-24T12:27:51.337 回答