【问题标题】:PHP SVG Check with fallback, possible?PHP SVG 检查与后备,可能吗?
【发布时间】:2012-04-08 17:15:49
【问题描述】:

是否可以检查(使用 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-Browser-Support-List 吗?

【问题讨论】:

  • 硬编码浏览器嗅探是一个非常糟糕的主意,而是测试该功能。您可以为此使用例如 Modernizr (modernizr.com),并让实际的 testing-for-svg-support 发生在它所属的客户端中。

标签: php svg fallback


【解决方案1】:

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

【讨论】:

  • 这意味着 -> 我没有机会用 php 来检查这个?
  • 您可以查看用户代理字符串,并查看功能数据库,但这不是一个好方法。除此之外,我不确定是否有 一种方法来执行此服务器端,因为它是您正在测试的浏览器,而不是服务器。正如我所说,如果您希望在服务器上 获得此信息,只需将信息发回(在 AJAX 调用中)。
  • 恕我直言是对服务器的 ajax 调用不是一个好主意(解决方法太大)。
  • 这根本不是一种解决方法。您需要询问浏览器的支持能力,因为用户计算机上的浏览器是它是否可以渲染 SVG 文件的权威来源。能力数据库更像是一种解决方法,因为 (a) 支持 SVG 的浏览器可能已关闭此功能,并且 (b) 列表需要随着新浏览器的发布而不断更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多