【发布时间】:2013-03-03 04:36:51
【问题描述】:
我有一个奇怪的 css 错误,我似乎无法修复,它只发生在 safari 中,而不是 chrome,所以 webkit 目标不会有帮助.. 我试图做的是设置一个 php 块来检查浏览器是否是 safari,如果是这样,请回显一些 CSS。
到目前为止,我得到了这个(下面) - 哪个有效,但它也在 chrome 中输出 echo 语句,我有什么想法出错了吗?
<?php
if(isset($_SERVER['HTTP_USER_AGENT'])){
$agent = $_SERVER['HTTP_USER_AGENT'];
}
if(strlen(strstr($agent,"Safari")) > 0 ){
$browser = 'safari';
}
if($browser=='safari'){
echo '<style>p {font-weight: 300;}</style>';
}
?>
我刚刚和echo $_SERVER["HTTP_USER_AGENT"]; 一起玩arround,这就是我从safari 得到的
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML,如 Gecko)版本/6.0.2 Safari/536.26.17
来自 chrome
Mozilla/5.0(Macintosh;英特尔 Mac OS X 10_8_2)AppleWebKit/537.22 (KHTML,如 Gecko)Chrome/25.0.1364.172 Safari/537.22
所以它可以告诉它不同的浏览器,但它显然将它们都读取为 Apple Web Kit,而不是 safari 或 chrome。我的 php 有点生疏了,我该如何让它专门针对 safari 用户代理?
【问题讨论】:
-
为什么要自己解析 - 有一个内置函数:php.net/manual/en/function.get-browser.php
-
因为get_browser需要
browscap,所以根本没用。 -
为什么不在客户端解决,哪里有问题?
标签: php cross-browser browser-detection php-5.2