使用备选方案的 PHP SVG 检查,可行吗?

5

使用PHP能否检测浏览器是否支持SVG?

例如...

if( BROWSER support SVG )
{
   $iT = 'svg';              // Icon type
}
else
{
   $iT = 'png';              // Icon type
}    

在HTML代码中...
<img src="icons/home.<?=$iT?>" class="icon" />



编辑:
如何检查浏览器和版本?这个想法怎么样?

$data['browser'] = strtolower($data['browser']);

if     ($data['browser'] == 'firefox' && (int)$data['browser']['version'] >= 10)
       $iT = 'svg';

elseif ($data['browser'] == 'safari'  && (int)$data['browser']['version'] >= 5)
       $iT = 'svg';

 .... and so on

PS:有人知道一个好的SVG浏览器支持列表吗?

硬编码的浏览器嗅探是一个非常糟糕的想法,应该测试功能而不是浏览器。您可以使用例如Modernizr(http://modernizr.com)进行此操作,并在客户端中进行实际的测试以支持SVG。 - Erik Dahlström
1个回答

3

您可以使用JavaScript和Raphael进行检查,然后将其发送回服务器。


1
这意味着我没有机会用 PHP 检查这个吗? - user970727
你可以查看用户代理字符串并查阅能力数据库,但这不是一个很好的方法。除此之外,我不确定是否有一种服务器端的方法来做到这一点,因为你测试的是浏览器,而不是服务器。正如我所说,如果你想在服务器上获取这些信息,只需将信息返回(通过 AJAX 调用)。 - halfer
在我看来,向服务器发起Ajax调用并不是一个好主意(太过繁琐)。 - user970727
1
这根本不是一个解决方法。你需要询问浏览器的支持能力,因为用户计算机上的浏览器是确定它是否能够呈现SVG文件的权威来源。能力数据库更像是一个解决方法,因为(a)支持SVG的浏览器可能已经关闭了此功能,(b)列表需要随着新浏览器的发布而不断更新。 - halfer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接