我正在尝试设置一个条件系统,它以编程方式检测浏览器(使用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]'
}
这里出现的明显问题是'
之间的冲突。 echo
下的else
,而不是在<style>
标记的末尾,正如我希望的那样,在代码中出现的第一个'
结束,事实上,它是在第一个USER_AGENT
声明中。
我该如何绕过这个问题?
答案 0 :(得分:5)
你错过了这一行末尾的'
:
<link rel="stylesheet" href="/style.css" type="text/css">;
将其替换为:
<link rel="stylesheet" href="/style.css" type="text/css">';
你正在使用单引号和双引号。但是,如果您执行需要使用相同的引号,则始终可以使用\
转义它们。例如,这也可以:
echo '<meta charset=\'UTF-8\'>';
答案 1 :(得分: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
}